web-dev-qa-db-ja.com

Sklearnパイプラインから機能の重要性を抽出する方法

Scikit-Learnでパイプラインを構築しました。1つは機能を構築するためのステップで、もう1つはRandomForestClassifierです。

そのパイプラインを保存し、さまざまなステップとそのステップで設定されたさまざまなパラメーターを確認することはできますが、結果のモデルから機能の重要性を調べることができるようにしたいと思います。

それは可能ですか?

10
elksie5000

ああ、そうです。

リストは、推定量をチェックするステップを識別します。

例えば:

pipeline.steps[1]

どちらが返されますか:

('predictor',
 RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
             max_depth=None, max_features='auto', max_leaf_nodes=None,
             min_samples_leaf=1, min_samples_split=2,
             min_weight_fraction_leaf=0.0, n_estimators=50, n_jobs=2,
             oob_score=False, random_state=None, verbose=0,
             warm_start=False))

その後、モデルステップに直接アクセスできます。

pipe.steps [1] [1] .feature_importances_

17
elksie5000