Scikit Learn中的交叉验证



我一直在使用 http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.cross_val_score.html

为了交叉验证逻辑回归分类器。我得到的结果是:

[ 0.78571429  0.64285714  0.85714286  0.71428571  
0.78571429  0.64285714    0.84615385  0.53846154  
0.76923077  0.66666667]

我的主要问题是我如何找到哪个集合/折叠最大化我的分类器的分数并产生 0.857。

后续问题:使用此集合训练我的分类器是一种好的做法吗?

提前谢谢你。

我是否以及如何找到哪个集合/折叠使我的分类器分数最大化

cross_val_score 的文档,您可以看到它对特定的cv对象进行操作。(如果您没有明确给出它,那么在某些情况下它会KFold,在其他情况下会其他事情 - 请参阅那里的文档。

您可以迭代此对象(或相同的对象)以查找确切的训练/测试索引。 例如:

for tr, te in KFold(10000, 3):
    # tr, te in each iteration correspond to those which gave you the scores you saw.

使用此集合训练我的分类器是否是一种好的做法。

绝对不行!

交叉验证的唯一合法用途是评估整体性能、在不同模型之间进行选择或配置模型参数。

提交到模型后,应在整个训练集中对其进行训练。在碰巧给出最佳分数的子集上训练它是完全错误的。

相关内容

  • 没有找到相关文章