2016-11-08 105 views
0

有沒有辦法檢索用於訓練分類器的特徵名稱列表,一旦已經使用fit方法進行了訓練?我希望在應用不可見的數據之前獲取這些信息。 用於訓練的數據是熊貓DataFrame,在我的情況下,分類器是RandomForestClassifier從分類器中檢索訓練特徵名稱列表

回答

1

根據文檔和以前的經驗,無法獲得至少在其中一個拆分處考慮的功能列表。

您是否擔心您不希望將所有功能用於預測,而只是實際用於培訓的功能?在這種情況下,我建議在擬合後列出feature_importances_,並消除看似不相關的功能。然後訓練一個只有相關特徵的新模型,並將這些特徵用於預測。

1

您不需要知道爲培訓選擇了哪些功能。在預測步驟中,請確保在學習階段期間使用相同功能

隨機森林分類器將只使用它進行拆分的功能。這些將與第一階段學到的相同。其他人不會考慮。

如果形狀您測試數據是不一樣的訓練數據它會拋出一個錯誤,即使測試數據包含用於您決策樹的分裂的所有功能。

因爲隨機森林做出的特點隨機選擇的決策樹(稱爲estimatorssklearn)的所有功能很可能是至少使用一次更重要的是,。


然而,如果你想知道使用的功能,你可以調用屬性n_features_feature_importances_您分類一次安裝

你可以看看here看看你如何檢索你使用的最重要的功能的名稱。

+0

您建議的解決方案只返回功能的數量而不返回它們的名稱。我知道在預測階段,不需要提供名稱,但只需提供相同的功能。但是,就我而言,我並不知道培訓中選擇的功能是什麼(如果這一點很重要的話,還有專欄順序)。 – user6903745

+0

@ user6903745:您爲什麼想知道選擇用於培訓的功能? – MMF

+0

我正在創建一個函數,它將一個分類器作爲參數。爲了不硬編碼我先前可能不知道的變量列表,或避免輸入錯誤或只是輸入無窮無盡的變量列表,最好將它存儲在分類器本身中。 – user6903745