# 부스팅
# 예측력이 약한 모형들을 결합하여 강한 예측 모형을 만드는 방법
# 붓스트랩을 병렬로 수행하는 배깅과 달리 순차방식으로 학습을 진행
# 훈련 단계에서 알고리즘은 각 결과 모델에 가중치를 할당
# 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

+ Recent posts