Scikit Learn 中的交叉验证
Cross Validation in 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]
我的主要问题是如何找到哪个 set/fold 最大化我的分类器分数并产生 0.857。
后续问题:用这个集合训练我的分类器是一种好的做法吗?
提前致谢。
whether and how I could find which set/fold maximises my classifier's score
在某些情况下来自 cross_val_score
, you can see that it operates on a specific cv
object. (If you do not give it explicitly, then it will be KFold
的文档,在其他情况下来自其他内容 - 请参阅那里的文档。)
您可以遍历此对象(或相同的对象)以找到确切的 train/test 索引。例如:
for tr, te in KFold(10000, 3):
# tr, te in each iteration correspond to those which gave you the scores you saw.
whether training my classifier with this set is a good practice.
绝对不会!
交叉验证的唯一合法用途是评估整体性能、在不同模型之间进行选择或配置模型参数。
一旦你确定了一个模型,你应该在整个训练集上训练它。在碰巧给出最好分数的子集上训练它是完全错误的。
我一直在用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]
我的主要问题是如何找到哪个 set/fold 最大化我的分类器分数并产生 0.857。
后续问题:用这个集合训练我的分类器是一种好的做法吗?
提前致谢。
whether and how I could find which set/fold maximises my classifier's score
在某些情况下来自 cross_val_score
, you can see that it operates on a specific cv
object. (If you do not give it explicitly, then it will be KFold
的文档,在其他情况下来自其他内容 - 请参阅那里的文档。)
您可以遍历此对象(或相同的对象)以找到确切的 train/test 索引。例如:
for tr, te in KFold(10000, 3):
# tr, te in each iteration correspond to those which gave you the scores you saw.
whether training my classifier with this set is a good practice.
绝对不会!
交叉验证的唯一合法用途是评估整体性能、在不同模型之间进行选择或配置模型参数。
一旦你确定了一个模型,你应该在整个训练集上训练它。在碰巧给出最好分数的子集上训练它是完全错误的。