Python/[머신러닝]
[머신러닝] 파이썬 머신러닝 완벽가이드 4장- LightGBM
hyunnn_00
2023. 4. 25. 15:15
1. LightGBM 설치
- XGBoost의 약점을 극복하기 위해 등장. → 학습 시간이 훨씬 적음
- 일반 GBM 계열의 트리 분할 방법과 다르게, 리프 중심 트리 분할 방식을 사용하고 있음
- 기존의 대부분 트리 기반 알고리즘은 트리의 깊이를 효과적으로 줄이기 위한 균형 트리 분할 방식 사용. 즉, 최대한 균형 잡힌 트리를 유지하면서 분할하기 때문에 트리의 깊이가 최소화될 수 있음. → 과적합에 더 강한 구조를 가질 수 있다고 알려져 있음
- 트리 중심의 단점은, 균형을 맞추기 위한 시간이 필요함.
- 리프 중심 방식은 트리의 균형을 맞추지 않고, 트리의 깊이가 깊어지고 비대칭적인 규칙 트리가 생성됨. → 학습을 반복할수록 균형 트리 분할 방식보다 예측 오류 손실을 최소화할 수 있음

- XGBoost와 마찬가지로 plot_importance()를 통해 바로 피처 중요도를 시각화할 수 있음.
- XGBoost 대비 LightGBM의 장점
- 더 빠른 학습, 예측 시간
- 더 적은 메모리 사용량
- 카테고리형 피처의 자동 변환과 최적 분할 (원-핫 인코딩을 사용하지 않고도 카테고리형 피처를 최적으로 변환하고, 이에 따른 노드 분할 수행)
8. 분류 실습 - 캐글 신용카드 사기 검출
언더 샘플링, 오버 샘플링
- 데이터가 불균형한 분포를 가진 데이터일때 예측 성능 문제가 발생할 수 있음.
→ 이상 레이블을 가지는 데이터 건수가 정상 레이블을 가진 데이터 건수에 비해 너무 적기 때문에 발생.
→ 즉, 이상 레이블을 가지는 데이터 건수는 매우 적기 때문에 다양한 유형을 학습하지 못하는 반면, 정상 레이블의 데이터 건수는 매우 많아서 일방적으로 정상 레이블로 치우친 학습을 수행하게 됨.
⇒ 이를 위해 언더 샘플링, 오버 샘플링이 등장

- 언더 샘플링 : 많은 데이터 세트를 적은 데이터 세트 수준으로 감소시키는 방식
- 과도하게 정상 레이블로 학습 / 예측하는 부작용을 개선할 수 있음
- 너무 많은 정상 레이블을 감소시키기에 정상 레이블의 경우 오히려 제대로 된 학습을 수행할 수가 없음
- 오버 샘플링 : 적은 데이터 세트를 증식해 학습을 위한 충분한 데이터를 확보하는 방안
- 동일 데이터 증식은 과적합을 유발하기에, 원본 데이터의 피처 값들을 아주 약간만 변경해 증식함
- SMOTE가 대표적임 : 적은 데이터 세트에 있는 개별 데이터들의 K 최근접 이웃을 찾아서 이 데이터와 K개의 이웃들의 차이를 일정 값으로 만들어서 기존 데이터와 약간 차이가 나는 새로운 데이터 생성

이상치 데이터
- 전체 데이터의 패턴에서 벗어난 이상 값을 가진 데이터 (Outlier)
- 이상치로 인해서 머신러닝 모델의 성능에 영향을 받는 경우가 발생하기 쉬움
이상치를 찾는 방법
- IQR(Inter Quantile Range)
- 사분위 값의 편차를 이용하는 기법, 흔히 박스 플롯 형식으로 시각화할 수 있음.
- 이상 데이터를 검출하는 방식 : IQR * 1.5를 곱한 뒤, 생성된 범위를 이용해 최댓값, 최솟값을 결정한 뒤 초과하거나 미달하는 데이터를 이상치로 간주
- 사분위 값의 편차를 이용하는 기법, 흔히 박스 플롯 형식으로 시각화할 수 있음.
9. 스태킹 앙상블
- 스태킹 : 개별적인 여러 알고리즘을 서로 결합해 예측 결과를 도출한다는 점에서 앞에 소개한 배깅 및 부스팅과 공통점을 가지고 있음
- 개별 알고리즘으로 예측한 데이터를 기반으로 다시 예측을 수행한다는 점에서 큰 차이가 존재함.→ 개별 모델의 예측된 데이터 세트를 다시 기반으로 하여 학습하고 예측하는 방식을 메타 모델이라고 함.
- 메타 모델이 사용할 학습 데이터 세트와 예측 데이터 세트를 개별 모델의 예측 값들을 스태킹 형태로 결합하는 것이 핵심!!
- → 개별 알고리즘의 예측 결과 데이터 세트를 최종적인 메타 데이터 세트로 만들어 별도의 ML 알고리즘으로 최종 학습 수행하고 테스트 데이터를 기반으로 다시 최종 예측을 수행하는 방식
- 스태킹에 필요한 모델
- 개별적인 기반 모델
- 최종 메타 모델
- → 스태킹 모델의 핵심은 여러 개별 모델의 예측 데이터를 각각 스태킹 형태로 결합해 최종 메타 모델의 학습용 피처 데이터 세트와 테스트용 피처 데이터 세트를 만드는 것.
- 스태킹 앙상블의 전개 과정
- CV기반 스태킹 앙상블
- 과적합을 개선하기 위해 최종 메타 모델을 위한 데이터 세트를 만들 때 교차 검증 기반으로 예측된 결과 데이터 세트 이용
- 과적합을 개선하기 위해 최종 메타 모델을 위한 데이터 세트를 만들 때 교차 검증 기반으로 예측된 결과 데이터 세트 이용