반응형
skit-learn 라이브러리를 사용한 회귀 평가 지표 실습
(데이터는 자전거 대여 수요예측(캐글))을 사용하였습니다.
sklearn.metrics에서 mean_squared_error, mean_absolute_error를 불러와 mse와 mae를 계산할 수 있습니다.
MSLE를 mean_squared_log_error를 통해 구할 수 있지만, 데이터 값의 크기에 따라 오버플로/언더플로 오류가
발생할 수 있습니다. 따라서 np.log1p()를 통해 이 문제를 해결해 줍니다. 그리고 log1p()를 통해 변환된 값은
expm1()을 통해 원래 스케일로 복구할 수 있습니다. 따라서 다음과 같은 함수를 만들어 줍니다.
위 함수를 통해 기본적인 전처리만 한 데이터셋에 대한 회귀모델 적용 후 평가입니다.
다음은 전처리를 통해 y_train을 로그변환했을 때의 평가입니다.
y_train에 로그변환을 하고 학습을 수행했을 때, 예측값도 로그변환된 데이터에 맞춰나오기 때문에 다시 원래
스케일로 변환을 해준 후에 평가를 수행해야합니다. 위의 예시에 따르면 y_train을 로그변환으로 정규분포에 가깝
게 만들어주어 RMSLE 점수가 더 좋게 나왔습니다.
RMSE 점수가 더 낮게 나온 것은, 범주형임에도 숫자형 데이터로 분류되어있던 feature의 영향인 것으로
드러났습니다. 이와 같은 경우는 원-핫 인코딩을 통해 해결할 수 있습니다.
반응형
'AI_basic > ML' 카테고리의 다른 글
[ML] SVM (0) | 2022.08.01 |
---|---|
규제가 있는 선형 모델 (0) | 2022.07.28 |
[ML] 지도학습/회귀 회귀 평가 지표 Part.1 (0) | 2021.09.24 |
[ML] 비지도학습 / 군집화 / K-means (0) | 2021.07.30 |
[ML] 데이터 전처리 - SMOTE 오버 샘플링 (0) | 2021.07.24 |