mlxtend로 해봅시다!

Python에서의 앙상블 기법

Román de las Heras

Data Scientist, Appodeal

Mlxtend

mlxtend-로고

  • Machine Learning Extensions
  • 데이터 사이언스 유틸리티/도구:
    • 특성 선택
    • 앙상블 기법
    • 시각화
    • 모델 평가
  • 직관적이고 친숙한 API
  • scikit-learn 추정기와 호환
1 Raschka, Sebastian (2018) MLxtend: Providing machine learning and data science utilities and extensions to Python's scientific computing stack: https://rasbt.github.io/mlxtend/
Python에서의 앙상블 기법

mlxtend의 스태킹 구현

스태킹 분류 개요

특징:

  • 개별 추정기는 전체 특성으로 학습됨
  • 메타 추정기는 예측값만 메타 특성으로 사용해 학습
  • 메타 추정기는 레이블 또는 확률을 목표로 사용 가능
Python에서의 앙상블 기법

mlxtend의 StackingClassifier

from mlxtend.classifier 
    import StackingClassifier
# 1층 분류기 인스턴스화
clf1 = Classifier1(params1)
clf2 = Classifier2(params2)
...
clfN = ClassifierN(paramsN)
# 2층 메타 분류기 인스턴스화
clf_meta = ClassifierMeta(paramsMeta)
# Stacking 분류기 구성
clf_stack = StackingClassifier(
   classifiers=[clf1, clf2, ... clfN],
   meta_classifier=clf_meta,
   use_probas=False,
   use_features_in_secondary=False)
# scikit-learn 추정기처럼 fit/predict 사용
clf_stack.fit(X_train, y_train)
pred = clf_stack.predict(X_test)
Python에서의 앙상블 기법

mlxtend의 StackingRegressor

from mlxtend.regressor 
    import StackingRegressor
# 1층 회귀기 인스턴스화
reg1 = Regressor1(params1)
reg2 = Regressor2(params2)
...
regN = RegressorN(paramsN)
# 2층 메타 회귀기 인스턴스화
reg_meta = RegressorMeta(paramsMeta)
# Stacking 회귀기 구성
reg_stack = StackingRegressor(
   regressors=[reg1, reg2, ... regN],
   meta_regressor=reg_meta,
   use_features_in_secondary=False)
# scikit-learn 추정기처럼 fit/predict 사용
reg_stack.fit(X_train, y_train)
pred = reg_stack.predict(X_test)
Python에서의 앙상블 기법

mlxtend로 해봅시다!

Python에서의 앙상블 기법

Preparing Video For Download...