본문 바로가기
머신러닝/개념익히기

ML XGBoost(eXtra Gradient Boost) w.위스콘신 유방암 데이터

by ADELA_J 2023. 12. 21.

<XGBoost>

- 트리 기반의 앙상블 학습 알고리즘 중 하나

- 분류에 있어서 일반적으로 뛰어난 예측 성능 나타냄

- GBM 기반. GBM 단점인 느린 수행 시간/과적합 규제(Regularization) 부재 등 문제 해결됨

  ▷ 병렬 CPU 환경에서 병렬 학습 가능해 GBM보다 빠르게 학습 완료 가능

 

<XGBoost 주요 장점>

- 뛰어난 예측 성능 : 분류/회귀 영역에서 일반적으로 뛰어난 예측 성능

- GBM 대비 빠른 수행 시간 : 병렬 수행으로 GBM 비교적 빠름

- 과적합 규제 Regularization : 자체 과적합 규제 기능으로 좀 더 강한 내구성 가능

- 나무 가지치기 Tree pruning : 더 이상 긍정 이득이 없는 분할을 가지치기해서 분할 수를 줄일 수 있음

- 자체 내장된 교차 검증 : 반복 수행 시 교차 검증을 수행해 최적화된 반복 수행 횟수 가질 수 있음. 

- 결손값 자체 처리 

 

*XGBoost는 독자적인 프레임워크 기반의 XGBoost 가 있고, 사이킷런과 연동되는 모듈이 있는데

여기서는 사이킷런과 연동되는 XGBoost 를 다룰예정

 

▶ 위스콘신 유방암 데이터 세트를 활용해 사용법 살펴보기

 

- 종양의 크기, 모양 등 다양한 속상값을 기반으로 악성/양성 분류한 데이터

- 양성 : benign / 음성 : malignant

 

▶ 데이터 불러오기

 

많은 속성이 숫자형으로 되어 있음.

이거는 info() 를 통해서도 알 수 있음.

 

다 float로 되어있는데 맨 마지막 target만 int32로 되어 있음.

악성 malignant 가 0, 양성 benign이 1로 되어있음. 분포를 확인해보면

 

이렇게 1인 benign, 양성의 데이터가 조금 더 많은 것을 확인할 수 있음.

 

▶ 데이터 분할

80% 학습, 20% 테스트 ▷ 80%학습용에서 90% 최종학습, 10% 검증용

: 검증용을 별도로 분할이유는 검증 성능평가와 조기중단 수행해보기 위해 (XGBoost 자체 제공)

 

▷ 최종 train 409개, validation 46개, test 114개

 

 

GBM때보다는 훨씬 더 빠르게 결과가 나오기도 했고,

성능도 좋게 나왔다. 

데이터 갯수가 몇 개 되지 않지만 이정도면 나쁘지 않은 것 같고,

데이터 수가 더 많아진다면 좀 더 성능이 향상될 것이다.