728x90
LightGBM 역시 파이썬 기반과 사이킷런 기반 두 종류가 있습니다. 하지만 자주 사용되는 사이킷런 기반 LightGBM에 대하여 실습을 진행해보도록 하겠습니다.
데이터는 위스콘신 유방암 예측 데이터셋을 사용해보도록 하겠습니다.
# LightGBM의 파이썬 패키지인 lightgbm에서 LGBMClassifier 임포트
from lightgbm import LGBMClassifier
import pandas as pd
import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
dataset = load_breast_cancer()
ftr = dataset.data
target = dataset.target
# 전체 데이터 중 80%는 학습용 데이터, 20%는 테스트용 데이터 추출
X_train, X_test, y_train, y_test=train_test_split(ftr, target, test_size=0.2, random_state=156 )
# 앞서 XGBoost와 동일하게 n_estimators는 400 설정.
lgbm_wrapper = LGBMClassifier(n_estimators=400)
# LightGBM도 XGBoost와 동일하게 조기 중단 수행 가능.
evals = [(X_test, y_test)]
lgbm_wrapper.fit(X_train, y_train, early_stopping_rounds=100, eval_metric="logloss",
eval_set=evals, verbose=True)
preds = lgbm_wrapper.predict(X_test)
pred_proba = lgbm_wrapper.predict_proba(X_test)[:, 1]
get_clf_eval(y_test, preds, pred_proba)
오차 행렬
[[33 4]
[ 2 75]]
정확도: 0.9474, 정밀도: 0.9494, 재현율: 0.9740, F1: 0.9615, AUC:0.9933
from lightgbm import plot_importance
import matplotlib.pyplot as plt
%matplotlib inline
fig, ax = plt.subplots(figsize=(10, 12))
# 사이킷런 래퍼 클래스를 입력해도 무방.
plot_importance(lgbm_wrapper, ax=ax)
반응형
'파이썬 머신러닝 완벽가이드' 카테고리의 다른 글
4.7 캐글 신용카드 사기 검출 (0) | 2022.01.10 |
---|---|
4.6 산타데르 은행 고객 만족도 데이터셋 실습 (0) | 2022.01.10 |
4.5 XGboost 실습 (0) | 2022.01.02 |
4.5 앙상블(부스팅) (0) | 2022.01.02 |
4.4 앙상블 학습(배깅) (0) | 2021.11.23 |