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
1. train / test 분리하기
sklearn의 train_test_split 통해
train데이터와 test 데이터를
7:3의 비율로 분리
.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) 에서 이어서 진행