from sklearn.metrics import mean_squared_error
MSE(Mean_Squared_Error) 사용!
데이터셋 불러오기
train 데이터 샘플 확인
Target 데이터 샘플 확인 & Target 비율 확인
선형 회귀
LinearRegression
W1*X1 + W2*X2 + W3*X3 + ... + Wn*Xn
규제로 성능을 올린다!
from sklearn.linear_model import Ridge
회귀 계수 확인 : 피쳐 순서대로 나옴
Ridge() 기본값 : alpha가 1
alpha 값이 10이라는 것을 회귀 계수에 저장
.coef_
이번에는 alpha를 0.1로 -> 앞선 선형 회귀와 비슷한 수치
from sklearn.linear_model import Lasso
alpha=1 회귀계수 저장
alpha=2
from sklearn.linear_model import ElasticNet
l1_ratio={수치}
로 사용 가능🔎 규제 방식 비교
- 릿지 회귀 : L2
- 라쏘 회귀 : L1(중요한 피처만 쓰고, 나머지는 0으로)
- 엘라스틱넷 회귀 : L2+L1
랜덤포레스트
XGBoost
랜덤 포레스트
-from sklearn.ensemble import RandomForestRegressor
- 회귀에서는 RandomForestRegressor를 불러와서 사용!
XGBoost
from xgboost import XGBRegressor
사이킷런 model_selection
기본 설정 : 라이브러리를 불러오고, 하이퍼파라미터를 지정, 그 후 데이터셋 로드
GridSearchCV
n_jobs=-1
: 병렬 코어(코어 전부 사용하겠다는 의미)
최적 파라미터 탐색
하이퍼파라미터 튜닝 진행: MSE로 평가해보기
평가 지표 | 설명 | 수식 |
---|---|---|
MAE |
평균 절대 오차 (Mean Absolute Error) - 실제 값과 예측 값 사이 -> 절대값으로 평균 |
|
MSE |
평균 제곱 오차 (Mean Squared Error) - 실제 값과 예측 값 사이 -> 제곱한 다음 평균 |
|
RMSE |
루트 평균 제곱 오차 (Root Mean Squared Error) - MSE에 루트를 씌운 형태 - MSE가 실제 오류보다 커짐 -> 그래서 루트를 사용 |
|
RMSLE |
루트 평균 제곱 로그 오차 (Root Mean Squared Log Error) - RMSE에 로그를 씌운 형태 - 예측 값이 실제 값보다 작을 때 -> 더 큰 패널티 |
|
R2 |
결정계수 (R Squared Score) - 실제 값 분산 대비 예측 값의 분산을 계산(1에 유사할수록 성능 good) - 위는 오차, 아래는 편차 |
MAE
from sklearn.metrics import mean_absolute_error
MSE
from sklearn.metrics import mean_squared_error
RMSE와 RMSLE는 바로 사용할 수는 없지만, 사이킷런과 넘파이로 조합해 사용 가능
RMSLE
from sklearn.metrics import mean_squared_log_error
를 사용한 뒤 한번 더 루트 씌워줘야 함!R2
from sklearn.metrics import r2_score