Kaggle 산탄데르 고객 만족 예측(Santander Customer Satisfaction) XGBoost와 LightGBM을 활용해서 예측해보자 산탄데르 은행이 주최한 경연이라 피처 이름은 익명 처리되어있음 레이블값이 1이면 불만 가진 고객, 0이면 만족한 고객 모델 성능 평가는 roc-auc로 평가 https://www.kaggle.com/competitions/santander-customer-satisfaction/data 데이터 전처리 In [3]: import numpy as np import pandas as pd import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') cust_df = pd.rea..
베이지안 최적화 기반의 HyperOpt를 이용한 하이퍼 파라미터 튜닝 GridSearch 방식은 파라미터 개수가 많을수록 시간이 오래 걸리는게 단점이다 XGBoost나 LightGBM은 성능은 뛰어나지만 파라미터 개수가 너무 많아서 대용량 데이터에 쓸 때 시간이 많이 걸린다 LightGBM에 6가지 하이퍼 파라미터를 적용하려고 해보자 max_depth=[10, 20, 30, 40, 50] num_leaves=4 subsample=5 min_child_weight=4 colsample_bytree=5 reg_alpha=3 인 경우 GridSearch는 6000회를 반복해야함 따라서 실무의 대용량 데이터에는 베이지안 최적화 기법을 사용함 베이지안 최적화 목적 함수 식을 제대로 모르는 블랙 박스 형태의 함수에..
LightGBM XGBoost와 함께 부스팅 알고리즘 중 가장 각광 받고있음 XGBoost는 GBM보다는 수행 시간이 빠르지만 대용량 데이터의 경우 시간이 많이 소요됌 LightGBM의 가장 큰 장점은 메모리 사용량이 상대적으로 적고 XGBoost보다 학습 시간이 훨씬 적지만 예측 성능은 별다른 차이가 없다는 것 기능 다양성도 LightGBM이 약간 더 많음 한 가지 단점은 작은 데이터셋에 적용할 경우 과적합이 발생하기 쉽다는 것(일반적으로 10,000건 이하의 데이터셋) 리프 중심 트리 분할 방식 사용최대손실값을 가지는 리프 노드를 지속적으로 분할하면서 트리의 깊이가 깊어지고 비대칭적 규칙 트리가 생성되지만 학습을 반복할수록 결국 균형 트리 분할 방식보다 예측 오류 손실을 최소화할 수 있음 균형 잡힌 ..
2023.05.29 - [DS/ML] - [sklearn] (23) - XGBoost (eXtra Gradient Boost) [sklearn] (23) - XGBoost (eXtra Gradient Boost) XGBoost(eXtra Gradient Boost) 기존 GBM보다 빠르게 학습을 완료할 수 있음 분류, 회귀에서 뛰어난 예측 성능을 보임 XGBoost는 자체에 과적합 규제 기능이 있어서 강한 내구성을 가짐 tree_pruning(가지치기) jaayy.tistory.com 사이킷런 래퍼 XGBoost의 개요 및 적용 XGBClassifier는 기존 사이킷런에서 일반적으로 사용하는 하이퍼 파라미터와 호환성을 유지하기 위해 기존의 xgboost 모듈에서 사용하던 하이퍼 파라미터 몇개를 변경함 e..
XGBoost(eXtra Gradient Boost) 기존 GBM보다 빠르게 학습을 완료할 수 있음 분류, 회귀에서 뛰어난 예측 성능을 보임 XGBoost는 자체에 과적합 규제 기능이 있어서 강한 내구성을 가짐 tree_pruning(가지치기)로 더 이상 긍정 이득이 없는 분할을 가지치기해서 분할 수를 줄임 반복 수행 시마다 내부적으로 교차검증을 수행, 최적화된 교차검증 횟수를 가질 수 있음 결손값을 자체 처리할 수 있음 XGBoost 패키지의 사이킷런 wrapper class는 XGBClassifier와 XGBRegressor를 제공 ! 파이썬 래퍼 XGBoost 모듈: 초기의 독자적인 XGBoost 전용 파이썬 패키지 ! 사이킷런 래퍼 XGBoost 모듈: 사이킷런과 연동되는 모듈 파이썬 래퍼 XGB..
GBM(Gradient Boosting Machine) 부스팅 알고리즘은 여러 개의 약한 학습기를 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치를 부여하고 오류를 개선해 나가면서 학습하는 방식 대표적으로 AdaBoost와 GBM이 있음 AdaBoost 에이다부스트 맨 왼쪽과 같이 +와 -로 된 피처 데이터셋이 있다면 step1은 첫 번째 약한 학습기가 분류 기준1으로 +와 -를 분류한 것, 동그라미+가 잘못 분류된 애들 step2에서 이 오류데이터에 가중치값 부여(0.3), 크기가 커진 + step3에서 두 번째 약한 학습기가 분류 기준2로 +와 -를 분류, 동그라미-는 잘못 분류된 애들 step4에서 이 오류데이터에 더 큰 가중치 부여(0.5), 크기가 커진 - step5에서 세 번째 약한 학..