Machine Learning/Brain age Prediction

(3) 머신러닝 모델 및 교차 검증

신승희 2021. 8. 11. 18:22

 적합한 feature를 선택하기 위해 SelectKBest 모듈을 활용하였다. SelectKBest 모듈이란 target 변수와 그 외 변수 사이의 상관관계를 계산하여 가장 높은 변수 k개를 선정할 수 있는 모듈이다. 상관관계를 분석하는 방법은 f-regression 방식, chi2 방식, f-classif 방식 등이 있는데 그 중 defaultf-classif 방식을 사용하였다. 하이퍼 파라미터 튜닝을 통해 k의 개수를 정해줄 것이기 때문에 k=all으로 설정했다.

 

 feature들의 값이 서로 달랐기 때문에 StandardScaler를 사용해 값에 대한 범위를 일정한 수준으로 맞춰주는 작업을 했다. StandardScaler는 표준화를 쉽게 지원해 주는 함수로 평균이 0이고 분산이 1인 값으로 변환을 시켜준다.

 

 훈련 데이터를 이용해 RandomForestRegressor 모델을 학습시켰다. RandomForestRegressor은 여러 개의 Decision Tree를 활용한 Bagging 방식의 대표적인 알고리즘이다. n_estimaor = 100으로 설정해 트리의 개수를 100개로 지정했다. max_depth =50 으로 설정해 트리의 최대 깊이를 50으로 만들었다.  n_jobs=-1으로 설정해 컴퓨터의 모든 코어를 사용하도록 했다.

 

 

 Scikit-learn make_pipeline은 연속된 변환을 순차적으로 처리할 수 있는 기능을 제공하는 유용한 도구이다. 이 기능을 통해 SelectKbest, StandardScaler, RandomforestRegressor을 처리했다.

 

 머신러닝 모델을 학습하는데 있어서 5겹 교차 검증을 거쳤다.

 교차 검증이란 머신러닝 모델을 훈련할 때 훈련 데이터 세트에 과도하게 초점을 맞춰 훈련되는 것, 즉 과적합(overfitting)을 막기 위해 사용되는 것으로 훈련 데이터 세트를 바꿔가며 훈련하면서 나온 평균을 정확도로 보는 방법을 말한다.

 그 중에서도 비율을 맞춰 데이터 세트가 한 곳으로 몰리는 것을 방지하는 StratifiedKFold 교차 검증을 적용하였다.