我有一组与二元类标签相关的特征向量,
每个都有大约 40,000 个特征。我使用 RandomForestClassifier 中的 sklearn 训练一个 RandomForest 分类器,大约需要 10 分钟。但是,我想看看哪些是最重要的功能。

我试着简单地打印出 clf.feature_importances_ 但这需要
每个功能约 1 秒,总共约 40,000 秒(约 12 小时)。这
比训练分类器所需的时间长得多
第一名!

有没有更有效的方法来找出哪些功能最重要?

这是我的意思的一个例子:

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=50)
clf = clf.fit(X, Y)
for i in xrange(len(clf.feature_importances_)):
    print clf.feature_importances_[i]

最佳答案

您需要做的就是将 clf.feature_importances_ 的结果存储在一个数组中,然后使用它来打印结果。喜欢:

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=50)
clf = clf.fit(X, Y)

featureImportance = clf.feature_importances_
for i in xrange(len(featureImportance)):
    print featureImportance[i]

您现在处理它的方式是每次都重新计算数组。

关于python - 在随机森林中查找重要特征非常慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38514249/

10-12 22:09