使用交叉验证来计算特征重要性“一些问题”

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

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.99994462,0.99977848,0.99983386,0.99977847,1.]

train_score [0.99998769,0.99998154,0.99997539,0.99997539]

谁能解释这些结果?它表示什么?

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

谢谢。

aa4892278 回答:使用交叉验证来计算特征重要性“一些问题”

您的问题1在此处略有超出范围。对于每一次交叉验证,您都会获得一系列重要的功能。那么您如何将这些功能组合为每个功能的单个重要性?可能会有一些输出显示基于不同折痕的较高分数,特定功能很重要。但这可能有所不同。

现在,除非设置了cross_validate参数,否则scoring将返回其中使用的估计量的默认分数。因此,如果您离开scoring,它将使用RandomForestClassifier的{​​{1}}方法返回精度。

(在scikit中,所有分类器都将以score()返回精度,而所有回归器将返回r平方值)

因此,对于您的问题2:返回的分数是每cv折的精度。

如果您不想使用准确性并希望获得其他分数,可以在score()中设置scoring参数。

本文链接:https://www.f2er.com/2986151.html

大家都在问