もう少し複雑なバギングモデル
半導体データを見てきましたので、次は入力特徴量から 'Pass/Fail' ラベルを予測するバギング分類器を構築しましょう。
前処理済みデータセットは作業スペースに uci_secom として用意されており、学習用とテスト用のデータも作成済みです。
目的変数に強いクラス不均衡があるため、ここではベース推定器として "balanced" のロジスティック回帰を使用してください。
また、LogisticRegression の計算時間を短縮するために、デフォルトより高速な最適化手法である solver='liblinear' を使用します。
この演習はコースの一部です
Pythonで学ぶアンサンブル手法
演習の手順
- ベース分類器として使用するロジスティック回帰を、
class_weight='balanced'、solver='liblinear'、random_state=42のパラメータでインスタンス化します。 - ベース推定器にロジスティック回帰を用いたバギング分類器を構築し、最大特徴量数を
10、さらに out-of-bag スコアを有効化してください。 - out-of-bag スコアを出力して、精度と比較しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Build a balanced logistic regression
clf_lr = ____
# Build and fit a bagging classifier
clf_bag = ____(____, ____, ____, random_state=500)
clf_bag.fit(X_train, y_train)
# Evaluate the accuracy on the test set and show the out-of-bag score
pred = clf_bag.predict(X_test)
print('Accuracy: {:.2f}'.format(accuracy_score(y_test, pred)))
print('OOB-Score: {:.2f}'.format(____))
# Print the confusion matrix
print(confusion_matrix(y_test, pred))