scikit learn中的feature_importances,如何选择正确的参数?

Posted

技术标签:

【中文标题】scikit learn中的feature_importances,如何选择正确的参数?【英文标题】:Feature_importances in scikit learn, how choose correct parameters? 【发布时间】:2017-01-05 09:28:20 【问题描述】:

我的任务是了解哪些特征(位于 X 数据集的列中)最适合预测目标变量 - y。我决定在 RandomForestClassifier 中使用 feature_importances_。当 max_depth=10 且 n_estimators = 50 时,RandomForestClassifier 具有最佳得分(aucroc)。使用具有最佳参数或默认参数的 feature_importances_ 是否正确?为什么? feature_importances_ 是如何工作的?

例如,具有最佳和默认参数的模型。

1)

model = RandomForestClassifier(max_depth=10,n_estimators = 50)
model.fit(X, y)
feature_imp = pd.DataFrame(model.feature_importances_, index=X.columns, columns=["importance"])

2)

model = RandomForestClassifier()
model.fit(X, y)
feature_imp = pd.DataFrame(model.feature_importances_, index=X.columns, columns=["importance"])

【问题讨论】:

你没有使用特征重要性。这是对每个特征对您的预测的信息量的估计。 正如@cel 所说,feature_importances_ 只会对您的每个列的重要性进行评分。就这样。此外,如果您只是 google scikits-learn 文档,您会发现 here 一个演示如何阅读 feature_importances_ 【参考方案1】:

我认为您应该使用具有最佳参数的 feature_importances_,这是您要使用的模型。默认参数没有什么特别之处,值得特别对待。至于feature_importances_是如何工作的,可以参考这里scikit-learn作者的回答How are feature_importances in RandomForestClassifier determined?

【讨论】:

以上是关于scikit learn中的feature_importances,如何选择正确的参数?的主要内容,如果未能解决你的问题,请参考以下文章

scikit-learn 中的随机森林解释

混淆矩阵中的 Scikit-learn 变化阈值

scikit-learn 中的 DBSCAN(仅使用指标)

scikit-learn 中的不平衡

GradientBoostingClassifier 与 scikit-learn 中的 BaseEstimator?

scikit-learn 中的测试集分区