부스팅(Boosting) - LightGBM
1. 장점 ( XGBoost 대비)
(1) 더 빠른 학습과 예측 수행시간( CPU 코어가 증가된다면 XGBoost도 빠른 수행 속도를 보인다. )
(2) 작은 메모리 사용량
(3) 원-핫 인코딩 등 인코딩 방법을 사용하지 않고도 카테고리형 피처를 최적으로 변환하고 노드 분할 수행
(4) GPU 지원
(5) 리프 중심 트리 분할 ( Leaf Wise ) - 균형 분할보다는 오류를 줄이는 방향성을 가지고 트리를 분할해서 속도와 성능 향상
* Light GBM을 사용하기 위해서는 Visual Studio Build Tools 설치해야한다. Visual Studio Build Tools에서 Visual C++ 빌도 도구를 설치한 후에 아나콘다 프롬프트에서 관리자 권한으로 실행 후 conda install -c conda-forge lightgbm 설치까지 하고 사용해야 한다. 이 방법으로 설치가 되지 않을 경우 !pip install lightgbm을 사용하여 설치한다.
2. 코딩 - 위스콘신 유방암 데이터 ( 다양한 방법을 똑같은 데이터로 예측 성능을 비교하기 위함)
필요한 라이브러리를 임포트 한다.
데이터를 로드하고 feature와 target 값을 각각 객체에 저장한다.
학습 데이터와 테스트 데이터를 분리하고 앞에 예측 성능과 비교하기 위해 동일 조건으로 n_estimators를 똑같이 400으로 설정하고 조기 중단 기능 옵션도 100으로 설정해준다. 테스트 데이터를 별도로 해야하지만 Light GBM과 같이 똑같이 테스트를 사용한다.
학습을 통해 테스트 데이터를 예측하고 1로 예측할 확률값을 확인한다.
평가 함수를 사용하여 분류 성능 평가 지표로 여러가지를 확인한다.
그 결과 하이퍼 파라미터 튜닝이 안되어 있어서 XGBoost보다 성능은 다소 안좋게 나온 상태이다.
(XGBoost - 정확도: 0.9737, 정밀도: 0.9744, 재현율: 0.9870, F1: 0.9806, AUC:0.9951)
다른 방법들과 같이 그래프를 사용하여 feature를 f1 score로 나열한다.
칼럼 21번, 22번, 1번, 27번, 11번 순으로 나열된 것을 볼 수 있다.