BaggingClassifier: 핵심 개념

Python에서의 앙상블 기법

Román de las Heras

Data Scientist, Appodeal

이기종 vs 동종 함수

이기종 앙상블 함수

het_est = HeterogeneousEnsemble(
    estimators=[('est1', est1), ('est2', est2), ...],
    # additional parameters
)

동종 앙상블 함수

hom_est = HomogeneousEnsemble(
    est_base,
    n_estimators=chosen_number,
    # additional parameters
)
Python에서의 앙상블 기법

BaggingClassifier

Bagging 분류기 예시:

# 기본 추정기(약한 모델) 생성
clf_dt = DecisionTreeClassifier(max_depth=3)
# 추정기 5개로 Bagging 분류기 구성
clf_bag = BaggingClassifier(
    clf_dt,
    n_estimators=5
)
# 학습 세트에 적합
clf_bag.fit(X_train, y_train)
# 테스트 세트 예측
y_pred = clf_bag.predict(X_test)
Python에서의 앙상블 기법

BaggingRegressor

Bagging 회귀기 예시:

# 기본 추정기(약한 모델) 생성
reg_lr = LinearRegression()
# 추정기 10개로 Bagging 회귀기 구성
reg_bag = BaggingRegressor(
    reg_lr
)
# 학습 세트에 적합
reg_bag.fit(X_train, y_train)
# 테스트 세트 예측
y_pred = reg_bag.predict(X_test)
Python에서의 앙상블 기법

Out-of-bag 점수

  • 샘플 밖인 인스턴스에 대해 각 추정기의 개별 예측 계산
  • 개별 예측 결합
  • 해당 예측으로 지표 평가:
    • 분류: 정확도
    • 회귀: R^2
clf_bag = BaggingClassifier(
    clf_dt,
    oob_score=True
)
clf_bag.fit(X_train, y_train)
print(clf_bag.oob_score_)
0.9328125
pred = clf_bag.predict(X_test)
print(accuracy_score(y_test, pred))
0.9625
Python에서의 앙상블 기법

이제 직접 해 보세요!

Python에서의 앙상블 기법

Preparing Video For Download...