스태킹 앙상블 스태킹이 배깅, 부스팅과 다른 가장 큰 차이점은 개별 알고리즘으로 예측한 데이터를 기반으로 다시 예측을 수행한다는 것 즉, 결과데이터셋을 최종 메타 데이터셋으로 만들어 별도의 알고리즘으로 최종 학습을 수행하고 테스트셋을 기반으로 다시 최종 예측을 수행하는 방식 메타 모델: 개별 모델의 예측된 데이터셋을 다시 기반으로 하여 학습, 예측하는 방식 필요한 모델 2가지: 1. 개별적인 기반 모델 2. 최종 메타 모델 핵심은 >> 여러 개별 모델의 예측 데이터들을 스태킹 형태로 결합해 최종 메타 모델의 학습용 피처데이터, 테스트용 피처데이터를 만드는것 메타 모델용 학습데이터로 사용됨 ③ 학습된 개별 모델들은 원본 테스트데이터를 예측하여 예측값 생성, 이런 로직을 3번 반복하면서 예측값의 평균을 냄,..
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에서 세 번째 약한 학..
랜덤 포레스트 앙상블 알고리즘 중 비교적 빠른 수행 속도를 가짐 기반 알고리즘은 결정 트리, 그래서 쉽고 직관적인 장점을 그대로 가짐 여러 개의 결정 트리 classifier가 전체 데이터에서 배깅 방식으로 각자의 데이터를 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 하게 됨 랜덤 포레스트는 개별 분류기의 기반은 결정 트리이지만 개별 트리가 학습하는 데이터셋은 일부가 중첩되게 샘플링되었음 >> 부트스트래핑 분할 방식 서브세트 데이터는 부트스트래핑으로 임의로 만들어짐 서브세트 데이터 건수는 전체 데이터 건수와 동일하지만, 개별 데이터가 중첩됨 사이킷런은 RandomForestClassifier 클래스를 지원 In [1]: from google.colab impor..