Machine Learning/선형 회귀

[머신러닝] Boston 주택 값 예측 (1)_1.데이터분리/2.학습/3.평가

숭어싸만코 2022. 9. 21. 12:29

Boston 주택 값 예측 

 

sklearn  실습 데이터를 가져온 후  

 

문제에 대한 DataFrame을 만들어준다.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston

boston = load_boston()

boston.keys()

boston.feature_names

pd.DataFrame

- CRIM: 자치시(town) 별 1인당 범죄율
- ZN: 25,000 평방피트를 초과하는 거주지역의 비율
- INDUS:비소매상업지역이 점유하고 있는 토지의 비율
- CHAS: 찰스강에 대한 더미변수(강의 경계에 위치한 경우는 1, 아니면 0)
- NOX: 10ppm 당 농축 일산화질소
- RM: 주택 1가구당 평균 방의 개수
- AGE: 1940년 이전에 건축된 소유주택의 비율
- DIS: 5개의 보스턴 직업센터까지의 접근성 지수
- RAD: 방사형 도로까지의 접근성 지수
- TAX: 10,000 달러 당 재산세율
- PTRATIO: 자치시(town)별 학생/교사 비율
- B: 1000(Bk-0.63)^2, 여기서 Bk는 자치시별 흑인의 비율을 말함.
- LSTAT: 모집단의 하위계층의 비율(%)
- MEDV: 본인 소유의 주택가격(중앙값) (단위: $1,000)

df = pd.DataFrame(boston.data,
                  columns = boston.feature_names
                 )

df

각 컬럼들에 대한 설명과
문제(X) 데이터      /       정답(y) 데이터

 

1. train / test 분리하기

sklearn의   train_test_split 통해

train데이터와 test 데이터를

7:3의 비율로 분리

 

 

 

 

 

X_train 과 y_train

 

 

 

 

 

.shape를 통해 7:3 의 비율로

train과 test 데이터가 잘 나눠진 것을 확인할 수 있다.

 

 

 

2.데이터 학습하기

# 학습 

from sklearn.linear_model import LinearRegression
from sklearn.linear_model import SGDRegressor



## Linear 모델

l_model = LinearRegression()

l_model.fit(X_train,y_train)   #train 데이터로 훈련

len(l_model.coef_)   # 가중치의 개수는 13개 == 컬럼의 개수



## SGD모델

s_model = SGDRegressor(max_iter = 1000,    #가중치 업데이트 반복횟수 (epoch) 1000번을 다돌지 않고 의미가 없다고 생각되면 멈춘다.
                       eta0 = 0.000001,        #학습률 (1 이하의 값)
                       verbose = 1         #학습 과정 확인(1:확인 , 0:확인안함)
                      )

s_model.fit(X_train,y_train)

# 기울기 발산현상 조치 : eta0 값을 작은 값으로 수정
# 데이터 스케일링 적용하기
# 정규화 L1,L2 적용해보기

3. 평가 / 회귀모델 평가지표

 

 


[머신러닝] Boston 주택 값 예측 (2) 에서 이어서 진행