始める無料で始める

もう少し複雑なバギングモデル

半導体データを見てきましたので、次は入力特徴量から '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))
コードを編集して実行