我是给整个数据集的cross\u val_score()还是只给trainingset?

2024-04-28 13:06:18 发布

您现在位置:Python中文网/ 问答频道 /正文

因为课程的文档不是很清楚。我不明白我给它什么价值。在

cross_val_score(estimator, X, y=None)

这是我的代码:

clf = LinearSVC(random_state=seed, **params)
cvscore = cross_val_score(clf, features, labels)

我不确定这是否正确,或者我是否需要给出X峎u train和y峎train而不是特性和标签。在

谢谢


Tags: 代码文档nonetrainrandomval课程seed
2条回答

将测试集和训练集分开总是一个好主意,即使在使用交叉评分时也是如此。这背后的原因是知识外泄。这基本上意味着,当您同时使用训练集和测试集时,您正在将测试集的信息泄漏到您的模型中,从而使您的模型有偏差,从而导致错误的预测。在

以下是关于同一问题的blog post的详细信息。在

参考文献:

我想你指的是以下文件: http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_score.html

交叉验证的目的是确保模型在一个实例中没有特别高的方差,而在另一个实例中却没有很好的拟合。这通常用于模型验证中。记住这一点,你应该通过训练集(X_train,y_train),看看你的模型表现如何。在

你的问题集中在: “是否可以将整个数据集传入交叉验证?”在

答案是,是的。这是有条件的,基于您是否满意ML输出。例如,我有以下内容: ROC Curve 我用了一个随机模型和我的快乐模型。在

我已经准备好了。 一旦我去掉这个保留集,给我的模型一个完整的数据集,我们会得到一个更高分数的曲线图,因为我给了我的模型更多的信息(同样,你的简历分数也会更高)。在

调用该方法的示例如下: 概率得分=交叉得分(模型、X车、y车、cv=5)

一般情况下,首选5倍交叉验证。 如果您希望达到5倍以上-请注意,随着“n”倍的增加,所需的计算资源数量也将增加,并且需要更长的时间来处理。在

相关问题 更多 >