簡體   English   中英

SciKit中決策樹中的Feature_importance向量與特征名稱一起學習

[英]Feature_importance vector in Decision Trees in SciKit Learn along with feature names

我正在運行SciKit Learn中的決策樹算法,我希望獲得Feature_importance向量以及功能名稱,以便我可以確定哪些功能在標記過程中占主導地位。 你可以幫幫我嗎? 謝謝。

假設您有樣本作為pandas.DataFrame行:

from pandas import DataFrame
features = DataFrame({'f1': (1, 2, 2, 2), 'f2': (1, 1, 1, 1), 'f3': (3, 3, 1, 1)})
labels = ('a', 'a', 'b', 'b')

然后使用樹或森林分類器:

from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier()
classifier.fit(features, labels)

然后,重要性應與框架列匹配:

for name, importance in zip(features.columns, classifier.feature_importances_):
    print(name, importance)

# f1 0.0
# f2 0.0
# f3 1.0

wrwrwr提出了一個很好的建議! 由於分類器的'feature_importances_'屬性中的要素重要性值的順序與'feature.columns'中要素名稱的順序相匹配,因此您可以使用zip()函數。

此外,對功能進行排序也很有幫助,並選擇要顯示的前N個功能。

假設您已創建分類器:

clf = DecisionTreeClassifier(random_state=0).fit(X_train,y_train)

然后,您可以按重要性的降序打印前5個功能:

for importance, name in sorted(zip(clf.feature_importances_, X_train.columns),reverse=True)[:5]:
    print (name, importance)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM