Day 26 - 머신러닝 7 > XGBoost

2022. 11. 15. 21:51Python

이번 글에서는 머신러닝 알고리즘 중 XGBoost에 대해 다룰 것이다.

XGBoost는 현재 가장 인기 있는 모델이자 성능이 검증된 부스팅* 모델로, 트리 기반 모델이기 때문에 종속 변수의 데이터 타입에 관계 없이 사용할 수 있으며 이미지/자연어를 제외한 표로 정리된 데이터의 경우 거의 모두에서 활용 가능하다. XGBoost는 또한 변수 종류가 많고 데이터가 클수록 더 뛰어난 성능을 보여주기도 한다. 하지만, 복잡한 모델이기 때문에 설명력이 떨어지고 하이퍼 파라미터 튜닝이 까다롭다는 단점이 있다.

*부스팅: 순차적으로 트리를 만들어 이전 트리보다 더 나은 트리를 만들어내는 알고리즘이다.

 

XGBoost 실습을 스피드 데이팅 커플 성사 데이터셋을 통해 진행했다.

데이터를 불러오고 확인했다.
데이터의 결측치를 처리했다.
이번 실습부터 피처 엔지니어링을 진행했는데, 우선은 나와 파트너 간의 나이차를 측정하여 컬럼화 했다.
동일인종 여부도 판단했다.
또 나와 상대방이 파트너에게 중요하게 생각하는 것과 평가한 점수를 곱해서 중요도 평가 점수 항목을 만들었다.
마지막으로 dummy 변수를 통해 범주형 변수를 변환하고 훈련셋과 시험셋을 나누었다.
모델학습과 평가를 진행했다. 정확도 자체는 높아 보이나, 실제 커플이 성사된 것을 예측하는 정확도는 높지 않았다.
하이퍼 파라미터 튜닝을 통해 그리드 서치를 해보고 변수의 영향력을 알아보았다.