이전 블로그 I 덮여의 기초가 선형 회귀와 그의 후손이다. 을 선형 회귀분석 우리는 원래의 데이터 집합하고 적용하는 개념을 우리가 배웠습니다.
우리는 보스턴의 다른 주택에 대한 정보가 포함 된 주택 데이터 세트를 취할 것입니다. 이 데이터는 원래 UCI 기계 학습 저장소의 일부였으며 현재 제거되었습니다. Scikit-learn 라이브러리에서이 데이터에 액세스 할 수도 있습니다. 이 데이터 세트에는 506 개의 샘플과 13 개의 기능 변수가 있습니다. 목표는 주어진 기능을 사용하여 집의 가격 가치를 예측하는 것입니다.
그럼 시작하자.먼저 필요한 라이브러리를 가져올 것입니다.
다음에,우리는 것입니다드 하우징에서 데이터는scikit-learn
라이브러리고 그것을 이해합니다.
우리는 인쇄 가치의boston_dataset
print(boston_dataset.keys())
은
dict_keys()
- 데이터에 대한 정보를 포함한 다양한 집
- 대상:가격의 집
- feature_names:의 이름을 기
- DESCR: 에 대해 설명합 데이터 집
에 대한 자세한 내용을 알고 기능을 사용하는boston_dataset.DESCR
의 설명이 모든 기능은 아래 주어:
CRIM: Per capita crime rate by town
ZN: Proportion of residential land zoned for lots over 25,000 sq. ft
INDUS: Proportion of non-retail business acres per town
CHAS: Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
NOX: Nitric oxide concentration (parts per 10 million)
RM: Average number of rooms per dwelling
AGE: Proportion of owner-occupied units built prior to 1940
DIS: Weighted distances to five Boston employment centers
RAD: Index of accessibility to radial highways
TAX: Full-value property tax rate per $10,000
PTRATIO: Pupil-teacher ratio by town
B: 1000(Bk — 0.63)², where Bk is the proportion of by town
LSTAT: Percentage of lower status of the population
MEDV: Median value of owner-occupied homes in $1000s
가격의 집에 표시한 변수를MEDV
우리의 목표는 변수이고 나머지는 기능 변수를 기반으로 우리가 예측의 가치 집입니다.
이제pd.DataFrame
head()
우리가 볼 수있는 목표 값MEDV
는 누락된 데이터에서. 대상 값의 새 열을 만들어 데이터 프레임에 추가합니다.
데이터 전처리
로딩 후 데이터를,그것은 좋은 연습을 볼 수 있으면 누락된 모든 값을 데이터에 있습니다. 우리는 수 없 값을 사용하여 각 기능에 대한isnull()
그러나 누락된 값이 없이 데이터 집합으로 아래와 같습니다.
예비 데이터 분석
예비 데이터 분석은 매우 중요한 단계는 훈련을하기 전에 모델이다. 이 섹션에서는 일부 시각화를 사용하여 대상 변수와 다른 기능의 관계를 이해합니다.
먼저 대상 변수MEDV
distplot
seaborn
라이브러리에서 사용할 것입니다.
우리는 값의MEDV
분산되어 일반적으로 몇 가지 특이하다.
다음으로 변수 간의 선형 관계를 측정하는 상관 행렬을 만듭니다. 상관 행렬은 pandas dataframe 라이브러리에서corr
함수를 사용하여 형성 될 수 있습니다. Seaborn 라이브러리의heatmap
함수를 사용하여 상관 행렬을 플롯합니다.
상관관계 계수 범위-1 에서 1. 값이 1 에 가깝다면 두 변수 사이에 강한 양의 상관 관계가 있음을 의미합니다. -1 에 가까울 때 변수는 강한 음의 상관 관계를 갖습니다.
관찰:
- 선형 회귀 모델을 맞추기 위해 목표 변수
MEDV
RM
MEDV
LSTAT
MEDV
(-0.74). - 선형 회귀 모델의 피쳐 선택에서 중요한 점은 다중 공동 선형성을 확인하는 것입니다. 기능
RAD
TAX
DIS
AGE
가의 상관관계 -0.75.
기상 관측리RM
LSTAT
MEDV
와 어떻게 다른지 살펴 보겠습니다.
관측:
- 가격으로 증가하는 값 RM 연속적으로 늘어납니다. 이상치는 거의 없으며 데이터는 50 으로 덮인 것 같습니다.
- 가격은 LSTAT 의 증가로 감소하는 경향이있다. 정확히 선형 선을 따르는 것처럼 보이지는 않지만.
데이터 준비를 위한 훈련 모델
우리는 연결LSTAT
RM
np.c_
에 의해 제공됩 numpy 라이브러리입니다.
로 데이터를 분할하 훈련 및 테스트 설정
다음에,우리는 데이터로 교육하고 테스트합니다. 우리는 샘플의 80%로 모델을 훈련시키고 나머지 20%로 테스트합니다. 우리는 보이지 않는 데이터에 대한 모델의 성능을 평가하기 위해이 작업을 수행합니다. 데이터를 분할하기 위해 scikit-learn 라이브러리에서 제공하는train_test_split
기능을 사용합니다. 우리는 마지막으로 분할이 제대로 발생했는지 확인하기 위해 교육 및 테스트 세트의 크기를 인쇄합니다.
(404, 2)
(102, 2)
(404,)
(102,)
훈련 및 테스트델
우리가 사용하는 와 배우의LinearRegression
을 훈련 우리의 모델 모두에서 훈련하고 테스트합니다.
모델 평가
리 평가하는 것이 우리의 모델을 사용하여 RMSE 및 R2 습니다.
The model performance for training set
--------------------------------------
RMSE is 5.6371293350711955
R2 score is 0.6300745149331701 The model performance for testing set
--------------------------------------
RMSE is 5.137400784702911
R2 score is 0.6628996975186952
이 시작하는 것이 좋다. 다가오는 블로그에서는 모델의 성능을 높이는 방법을 살펴볼 것입니다.
전체 Jupyter 노트북은 여기에서 찾을 수 있습니다.
결론
이 이야기에서,우리에 적용한 개념의 선형 회귀분석에서는 보스턴 주택합니다. 나는 다른 데이터 세트도 시험해 볼 것을 권한다.
여기에 몇 가지 장소 당신이 볼 수 있는 데이터에 대해
- https://www.kaggle.com/datasets
- https://toolbox.google.com/datasetsearch
- https://archive.ics.uci.edu/ml/datasets.html
끝까지 읽어 주셔서 감사합니다.!
이 시리즈의 다음 부분에서는 다항식 회귀를 다룰 것입니다. 더 많은 것을 위해이 공간을 지켜보십시오.