DeseoDeSeo
[Machine Learning ] ex09_보스턴 집값 예측 실습 본문
- 입력 데이터를 완벽하게 설명하는 것을 불가능. ➜ 오차가 가장 작은 선형함수를 찾아야함.
- 오차가 가장 작은 선형함수를 찾는다는 것? ➜ 평균제곱오차(MSE)가 가장 작은 선형함수를 찾는다.
- 평균제곱오차(MSE)가 가장 작은 선형함수 ➜ 최적의 선형 함수
ミ★ 평균제곱오차가 가장 작은 선형함수를 찾는 방법
- 수학 공식을 이용한 해석적 방법(공식으로 해결)
- 장점: 적은 계산으로 구함 ➜ 한번에 최적의 선형함수를 찾음.
- 단점 : 공식이 완벽하지 않을 경우 잘못 찾을 수도 있고 공식을 고칠 수 없는 문제
- 경사하강법
- 점진적으로 오차가 작은 선형함수를 찾아가는 방법(오차를 수정)
- 장점) 잘못 찾았을 때 수정 가능
- 단점) 점진적으로 찾아가므로 계산량이 많음.(➜ 시간이 오래걸림)
➤ 문제정의
- 보스턴 주택 가격데이터를 사용하여 집값을 예측해보자.
- 회귀모델을 적용.
- LinearRegression, SGDRegressor
1) 데이터 수집
import warnings
warnings.filterwarnings('ignore')
from sklearn import datasets
x,y = datasets.fetch_openml('boston',return_X_y= True)
x['CHAS'] = x['CHAS'].astype('int64')
x['RAD']=x['RAD'].astype('int64')
2) 문제와 정답 합치기
import pandas as pd
total = pd.concat([x,y],axis=1)
total
3) 데이터 전처리
- 결측치. 이상치 확인 단계
- 데이터 전처리 생략
4) EDA : 탐색적 데이터 분석
: 상관관계 분석
- 피어슨 상관계수 : 두 컬럼의 선형도 판단
# 관계를 시각적으로 확인하기.
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize= (12,12))
sns.heatmap(total.select_dtypes(include=['int64','float64']).corr(),annot=True)
plt.show()
○ heatmap( ): 시각적으로 뚜렷한 차이를 확인 ➜ 데이터를 전처리 할때 우선순위를 판단하는 근거
○ 모델을 학습하는데 시간이 많이 걸린다.
○ 데이터를 줄여야 함( 서비스를 제공할 때도 시간을 줄이자는 의미.)
○ 가지고 있는 문제(특성)들 중에서 상관도가 낮을때 부터 삭제를 하고
○ 추가적으로 전처리를 해야하는데 시간이 부족하다 할 때는 상관도가 높은것부터 차례로 전처리 함
5. 모델 선택 및 하이퍼파라미터 튜닝
# 수학적 공식을 이용한 해석적 모델
from sklearn.linear_model import LinearRegression
linear_model=LinearRegression()
# 경사하강법
from sklearn.linear_model import SGDRegressor
sgd_model = SGDRegressor()
6) 훈련과 평가로 분리
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = 0.3, random_state=10)
6-1) 학습
linear_model.fit(x_train,y_train)
sgd_model.fit(x_train, y_train)
6-2) 예측
'Python' 카테고리의 다른 글
[ Machine learning ] ex10 선형분류(Logistic Regression) 손글씨 숫자 데이터 분류 실습 (0) | 2023.09.13 |
---|---|
[Machine Learning] 선형 모델(회귀) 평가 지표 및 데이터 스케일링 (0) | 2023.09.13 |
[Machine Learning] 회귀, 선형 회귀 모델 (0) | 2023.09.07 |
[Machine Learning] 하이퍼 파라미터 튜닝(유방암 분류 실습) (1) | 2023.09.06 |
[Machine Learning] 하이퍼 파라미터 튜닝(타이타닉 실습) (0) | 2023.09.06 |