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기반 스태킹 앙상블
      • 과적합을 개선하기 위해 최종 메타 모델을 위한 데이터 세트를 만들 때 교차 검증 기반으로 예측된 결과 데이터 세트 이용