본문 바로가기
Python

[DL] Dataset: Boston Housing Price

by ds31x 2024. 4. 18.

Boston Housing Data

 

1970년 대 보스턴 시의 주택가격 데이터으로

California Housing Data 와 함께 기계학습의 연습용 데이터로 많이 애용됨.

 

현재 California Housing Data로 대체되는 추세임
California Housing Data가 1990대 후반에 얻어진 보다 최신 데이터이면서
인종적 편견을 유발하는 feature가 없고
보다 많은 sample 수 로 구성되었다는 장점을 가짐.

 

  • 집값은 Median Price이며,
  • 해당 집값에 영향을 주는 다양한 13개의 요소들로 구성됨.
  • 전체 샘플의 수는 506개임.
더보기

참고로,
TensorFlow 의 Keras 의 dataset 모듈에서 제공하는
boston_housing 의 load_data로 train dataset과 test dataset로 얻는 경우,
404개와 102개로 나누어 제공함.


Feature Description

idx Column Name Desc.
1 CRIM 범죄율
2 ZN 25,000 square feet 이상의 주거용 토지의 비율
3 INDUS 비소매사업지역이 차지하는 토지의 비율
4 CHAS 강의 경계 1, 아니면 0 (Charles River 기준)
5 NOX 10ppm 단위의 Nitric Oxides Concentration
6 RM 주택당 평균 방의 수
7 AGE 1940년 이전에 건축된 자가 소유 주택의 비율
8 DIS 다섯 개의 고용센터까지의 가중 거리.
9 RAD 방사형 고속도로 (radial highways) 접근성 지수 (방사형)
10 TAX 1만 달러당 재산세율
11 PTRATIO 학생/교사 비율 (Pupil-teacher ratio)
12 B $1000(Black - 0.63)^2$ : Black은 흑인을 의미함. 흑인의 비율
13 LSTAT 하위계층의 비율 (Lower status)
14 MEDV 주택의 median 가격 (단위: 1천달러)

 


데이터 로딩.

 

다음 URL에서 얻을 수 있는 Boston Housing Data는 약간의 처리가 필요함.

url: http://lib.stat.cmu.edu/datasets/boston 

 

위의 URL은 다음과 같은 특성이 있어서 일반적인 csv 형식과 차이가 있음.
* 하나의 샘플에 대한 데이터가 연속된 2개의 라인에 기재됨:  때문에 하나의 라인을 하나의 샘플로 처리해선 안됨.
* 짝수행의 데이터에서는 3개 열 외는 NaN이므로 제거해야함.
* 짝수행의 3번째 열이 바로 target인 주택의 median value에 해당함.

이를 반영하여 506개의 sample을 가지며, 하나의 sample은 13개의 feature를 가지는 input data인 x_raw와 이에 대응하는 label값을 가지는 y_raw를 생성하는 code는 다음과 같음.

import pandas as pd

data_url = 'http://lib.stat.cmu.edu/datasets/boston'

df = pd.read_csv(
    data_url,
    skiprows = 22,
    header = None,
    sep = '\s+'
)
df.head()

tmp_raw = df.values
x_raw = np.concatenate([tmp_raw[::2,:], tmp_raw[1::2,:2]], axis=1)
y_raw = tmp_raw[1::2,2].reshape(-1,1)

features = [
    'CRIM',
    'ZN',
    'INDUS',
    'CHAS',
    'NOX',
    'RN',
    'AGE',
    'DIS',
    'RAD',
    'TAX',
    'PIRATIO',
    'B',
    'LSTAT',
    'MEDV'
]
df = pd.DataFrame(np.hstack([x_raw,y_raw.reshape(-1,1)]), columns=features)

df.to_csv('boston.csv',index=False)
df.info()

같이 읽어보면 좋은 자료.

 

2024.04.13 - [Python] - [DL] Pandas 로 csv 읽기: read_csv

 

[DL] Pandas 로 csv 읽기: read_csv

pd.read_csv comma-separated values (csv)파일을 읽어서 pandas의 DataFrame 인스턴스로 변환해줌. URL을 통해서도 쉽게 DataFrame을 얻을 수 있음. import pandas as pd # ---------------------- # original data: boston house price data.

ds31x.tistory.com

2024.05.18 - [Python] - [ML] Dataset: Wisconsin Breast Cancer Dataset

 

[ML] Dataset: Wisconsin Breast Cancer Dataset

Wisconsin Breast Cancer Dataset (WBCD)은오늘날 Machine Learning 및 Data Science 분야에서binary classification 교육용으로 자주 사용되는 Dataset임. Wisconsin 대학의 병리학자인 Dr. William H. Wolberg가 수집한 dataset이며

ds31x.tistory.com

 

728x90