티스토리 뷰

카테고리 없음

부스팅 알고리즘

루돌푸다요 2024. 3. 29. 18:26

부스팅 알고리즘 수행 방법 

가장 최근의 알고리즘인 부스팅 알고리즘 

부스팅(Boosting) 알고리즘은 여러 개의 약한 학습기 (weak learner) 를 순차적으로 학습하면서 잘못 예측한 데이터에 가중치를 부여하여 오류를 개선해 나가는 학습 방식 입니다.

 

부스팅 알고리즘 종류 

  • Gradient Boosting Model 
    특징 : 가중치 업데이트를 경사하강법 방법을 통해 진행 
python 라이브 러리 

sklearn.ensemble.GradientBoostingClassifier
sklearn.ensemble.GradientBoostingRegressor

 

  • XGBoost 
    특징 : 트리기반 앙상블 기법으로, 가장 각광받으며 Kaggle 의 상위 알고리즘 
    병렬 학습이 가능해 속도가 빠름 
Xboost.XGBRClassifier
Xboost.XGBRegressor
  • LightGBM
    특징 : XGBoost 와 함께 가장 각광받는 알고리즘 
    XGBoost 보다 학습시간이 짧고 메모리 사용량이 작음 
    작은 데이터(10,000건 이하)의 경우 과적합 발생 
lightgbm.LGBMClassifier
lightgbm.LGBMRegressor

 

 

!pip install xgboost
!pip install lightgbm

from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import GradientBoostingClassifier
from xgboost import XGBClassifier
from lightgbm import LGBMClassifier 

model_knn = KNeighborsClassifier()
model_gbm = GradientBoostingClassifier(random_State =42)
model_xgb = XGBClassifier(random_state = 42)
model_lgb = LGBMClassifier(random_state = 42)

model_knn.fit(X,y)
model_gbm.fit(X,y)
model_xgb.fit(X,y)
model_lgb.fit(X,y)

y_knn_pred =model_knn.predict(X)
y_gbm_pred =model_gbm.predict(X)
y_xgb_pred =model_xgb.predict(X)
y_lgb_pred =model_lgb.predict(X)

get_score('lor', y,y_lopr_pred)
get_score('dt',y,y_dt_pred)
get_score('rf',y,y_rf_pred)
get_score('knn',y,y_knn_pred)
get_score('gbm',y,y_gbm_pred)
get_score('xgb',y,y_xgb_pred)
get_score('lgb',y,y_lgb_pred)