我有一组与二元类标签相关的特征向量,
每个都有大约 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/