【问题标题】:Using cross-validation to calculate feature importance "Some Questions"使用交叉验证计算特征重要性“一些问题”
【发布时间】:2020-03-28 02:26:04
【问题描述】:

我目前正在做一个项目。我已经选择了我的功能并想检查它们的重要性。如果有人可以帮助我,我有一些问题。

1- 如果我使用RandomForestClassifiercross-validation 来计算特征重要性,是否有意义?

2- 我尝试使用cross_validate 函数计算特征重要性 https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html 。该函数提供 test_score 和 train_score 结果。我使用10 Fold cross-validation 得到的结果如下:

test_score [0.99950158, 0.9997231 , 0.9997231 , 0.99994462, 0.99977848, 0.99983386, 0.99977848, 0.9997231 , 0.99977847, 1.]

train_score [0.99998769, 0.99998154, 0.99997539, 0.99997539, 0.99998154,0.99997539, 0.99998154, 0.99997539, 0.99998154, 0.99997539],

谁能解释这些结果?它说明了什么?

3-cross_validate函数有一个名为scoring的参数,它有不同的评分值,例如accuracybalanced_accuracyf1scoring 参数有什么作用?这些值是什么意思?我应该如何决定选择哪一个?我已经阅读了 scikit-learn 文档,但我并不清楚。

谢谢。

【问题讨论】:

    标签: python-3.x scikit-learn cross-validation feature-selection


    【解决方案1】:

    您的问题 1 在这里稍微超出了范围。对于交叉验证的每次运行(折叠),您将获得一系列对您的功能的重要性。那么你将如何将它们组合成每个特征的单一重要性?可能有输出可以根据不同折叠的较高分数显示特定特征很重要。但这可能会有所不同。

    现在,cross_validate 将返回其中使用的估计器的默认分数,除非设置了 scoring 参数。因此,如果您离开scoring,它将使用RandomForestClassifierscore() 方法返回准确性。

    (在 scikit 中,所有分类器都将返回 score() 的准确率,所有回归器都将返回 r-squared 值)

    所以对于您的问题 2:返回的分数是每 cv 倍的准确度。

    如果您不想使用准确度并想要其他分数,您可以将scoring 参数设置为cross_validate

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 2019-08-23
      • 1970-01-01
      • 2019-01-18
      • 2013-11-08
      • 2021-09-07
      • 2021-08-27
      • 2017-08-27
      • 2017-10-25
      相关资源
      最近更新 更多