훈련 데이터로 모델을 만들어 나이를 예측한 결과 원래 나이와 훈련 데이터로 예측된 나이의 MAE 값이 대략 3.02 정도 나왔고 원래 나이와 검증 데이터로 예측된 나이의 MAE 값이 대략 8.54 정도 나왔다.
RandomizedSearchCV를 이용하여 k를 튜닝해준 결과 k=48 이었다. 즉, 상관관계가 높은 feature 48개를 찾을 수 있었다.
하이퍼 파라미터가 튜닝된 모델을 이용한 결과 원래 나이와 훈련 데이터로 예측된 나이의 MAE 값은 대략 2.98 정도, 원래 나이와 검증 데이터로 예측된 나이의 MAE 값은 대략 8.18 정도 나왔다. 결과적으로 MAE 값들이 줄어든 것을 확인 할 수 있었다.
DATA | MAE | |
Train | 3.026801 | 2.983170 |
Val | 8.549396 | 8.187241 |
SelectKBest 모듈은 target 변수와 그 외 변수 사이의 상관관계를 계산하여 가장 높은 변수 k개를 선정할 수 있는 모듈이다. 그래서 상관관계 분석을 통해 변수 간 상관관계를 파악하려고 했다.
상관관계 분석을 위해 Corrleation Heatmap을 이용했고 상관관계가 0.3이상인 변수를 출력한 결과 다음과 같았다.
하이퍼파라미터 튜닝을 통해 SelectKbest, k=48을 찾았고 어떤 feature들이 사용되었는지 파악하기 위해 get_support() 함수를 사용했다. get_support() 함수는 선택된 특성을 bool 값으로 표시해 주어 어떤 특성이 선택되었는지 확인 할 수 있다. 검은색은 사용된 feature, 즉 true이고 하얀색은 사용되지 않은 feature, 즉 false이다.
하이퍼파라미터 튜닝을 RandomizedSearchCV로 했기 때문에 훈련 데이터와 검증 데이터가 달라질 경우 k도 조금씩 달라졌고 이에 따라 MAE값들도 조금씩 바뀌는 것을 볼 수 있다는 단점이 있었다.
최종적으로 학습된 머신러닝 모델을 통해 100명의 test data의 Age와 72명의 cobre test data의 Age를 예측한 결과 MAE 값과 R값은 다음과 같았다.
DATA | MAE | R |
Test | 8.114014 | 0.745125 |
Cobre Test | 15.47167 | 0.325506 |