我已經在Python中跟隨此Scikit-Learn example從森林估算器獲取.feature_importances_
。在該示例中,ExtraTreesClassifier()
與其默認的 超參數設置一起使用 - 這將意味着max_features='auto'
。這個例子的輸出是10個特徵的重要性圖。Scikit-Learn在RFECV()中手動指定.max_features - 有多少功能獲得排名?
問題1:
當我再次運行這個例子,與max_features=2
,該地塊仍然顯示所有10個特徵的特徵重要性有關。應該只顯示2個功能的重要性?
問題2:現在
,我想用ExtraTreesClassifier(max_features=2)
與RFECV()
。從RFECV() docs開始,它表示RFECV()
指定的排名爲1的最佳特徵 - 我們可以在RFECV()
的.ranking_
屬性中看到這一點。但是,如果我指定的估計值爲ExtraTreesClassifier(max_features=2)
,那麼RFECV()
在其估計器中將使用2個特徵,並且只返回2個特徵的等級?還是忽略max_features
並返回所有功能的排名?
那麼'max_features'在RFECV()中根本不使用? –
是什麼讓你覺得呢? – sietschie
當RFECV()選擇要素時,它正在查看排名以選擇rank = 1,但在我看來,這裏並沒有考慮估計器的「.feature_importances_」。基於此,我會說'RFECV()'忽略了'max_features'超參數。雖然我可能會誤解某些東西...... –