はじめてのパイプライン — もう一度!
不整脈スタートアップに戻り、月例レビューが近づいています。今回は熟練のPythonプログラマがあなたのコードをレビューします。そこでベストプラクティスに従って整理することにし、特徴量選択とランダムフォレスト分類のスクリプトをパイプラインに置き換えます。学習用データセットは X_train と y_train として用意されており、使用するモジュールは特徴量選択のための RandomForestClassifier、SelectKBest()、f_classif()、そして GridSearchCV と Pipeline です。
この演習はコースの一部です
Python で設計する Machine Learning ワークフロー
演習の手順
- サンプルコードで与えられた特徴量セレクタとランダムフォレスト分類器を使ってパイプラインを作成します。最初のステップ名は
feature_selectionとしてください。 paramsに2つのキーと値の組を追加します。セレクタの特徴量数kは 10 と 20、フォレストのn_estimatorsは 2 と 5 を候補とします。- 与えられたパイプラインとパラメータグリッドで
GridSearchCVオブジェクトを初期化します。 - オブジェクトをデータに適合させ、最も良い性能のパラメータ組み合わせを出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create pipeline with feature selector and classifier
pipe = ___([
(___, SelectKBest(f_classif)),
('clf', ___(random_state=2))])
# Create a parameter grid
params = {
'feature_selection__k':___,
___:[2, 5]}
# Initialize the grid search object
grid_search = ___(___, ___=params)
# Fit it to the data and print the best value combination
print(grid_search.fit(___, ___).___)