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

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

[ 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.





  以此集训练我的分类器是否是一个好习惯。


绝对不!

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

一旦建立了模型,就应该在整个训练集中对其进行训练。对碰巧给出最佳分数的子集进行训练是完全错误的。

关于python - Scikit Learn中的交叉验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34880843/

10-12 18:47