# 부스팅
# 예측력이 약한 모형들을 결합하여 강한 예측 모형을 만드는 방법
# 붓스트랩을 병렬로 수행하는 배깅과 달리 순차방식으로 학습을 진행
# 훈련 단계에서 알고리즘은 각 결과 모델에 가중치를 할당
# train 데이터에 과적합할 위험 있음
from sklearn.ensemble import AdaBoostRegressor # Ada 부스팅
reg = AdaBoostRegressor()
reg = reg.fit(X_train, y_train)
y_pred = reg.predict(X_test)
reg.get_params()
# train 정확도
reg.score(X_train, y_train)
# test 정확도
reg.score(X_test, y_test)
from sklearn.model_selection import GridSearchCV
param_grid = {'learning_rate' : np.arrange(0.01, 0.1, 0.02)}
model_grid_boost = GridSearchCV(AdaBoostRegressor(), param_grid, cv = 5)
model_grid_boost.fit(X_train, y_train)
model.grid_boost.best_estimator_
model_grid_boost.best_estimator_.score(X_train, y_train)
model_grid_boost.best_estimator_.score(X_test, y_test)
# 변수 중요도 확인해보면, 추출이 골고루 잘 안된다
# 가중치가 극단적으로 부여되었기 때문
# 부스팅 분류
from sklearn.ensemble import AdaBoostClassifier
from xgboost import XGBClassifier
adab = AdaBoostClassifier()
adab.fit(X_train, y_train)
xgb = XGBClassifier(eval_metric = 'mlogloss', use_label_encoder = False)
xgb = xgb.fit(X_train, y_train)
y_pred_adab = adab.predict(X_test)
adab.score(X_train, y_train)
adab.score(X_test, y_test)
y_pred_xgb = xgb.predict(X_test)
xgb.score(X_train, y_train)
xgb.score(X_test, y_test)
'ADP > 실기' 카테고리의 다른 글
KNN (0) | 2024.02.03 |
---|---|
나이브베이즈 분류 (0) | 2024.02.03 |
랜덤 포레스트(Random Forest) (0) | 2024.02.03 |
배깅 (0) | 2024.01.29 |
의사결정나무(분류, 회귀) (0) | 2024.01.29 |