2016-08-05 70 views
1

我在Scikit-Learn中構建了一個管道,其中包含兩個步驟:一個用於構建要素,另一個用於創建RandomForestClassifier。如何從Sklearn管道中提取要素重要性

雖然我可以保存該管道,但可以查看各個步驟以及在這些步驟中設置的各種參數,我希望能夠從結果模型中檢查特徵重要性。

這可能嗎?

回答

7

啊,是的。

您列出要檢查估計識別步驟:

例如:

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)) 

然後,您可以直接訪問模型的步驟:

pipeline.steps [1] [1] .feature_importances_

+0

爲了獲得這些特性的名稱,你可以看看pipe.steps [0] [1] .get_feature_names() – Devon