根据scikit-learn的DOC
sklearn.model_selection.cross_val_score(估算器,X,y =无, groups = None,得分=无,cv =无,n_jobs = 1,verbose = 0, fit_params = None,pre_dispatch ='2 * n_jobs')
X和y
X:array-like要适合的数据。例如,可以是列表,也可以是 阵列。
y:array-like,optional,default:None目标变量to 在监督学习的情况下尝试预测。
我想知道[X,y]是X_train还是y_train或[X,y]应该是整个数据集。在一些来自kaggle的笔记本中,有些人使用整个数据集,还有一些人使用X_train和y_train。
据我所知,交叉验证只是评估模型并显示您是否过度匹配/不适合您的数据(它实际上并不训练模型)。然后,在我看来,你拥有的数据越多,性能就越好,所以我会使用整个数据集。
您怎么看?
答案 0 :(得分:2)
模型performance
取决于数据的分割方式,有时模型无法进行推广。
这就是我们需要交叉验证的原因。
Cross-validation
是评估模型的重要一步。它最大化了用于训练模型的数据量,因为在训练过程中,模型不仅经过培训,而且还对所有可用数据进行了测试。
我想知道[X,y]是X_train和y_train还是[X,y]应该是 整个数据集。
[X, y]
应该是整个数据集,因为内部交叉验证会将数据拆分为training
数据和test
数据。
假设您使用5次交叉验证(cv = 5)。
我们首先将数据集拆分为五组或折叠。然后我们将第一个折叠作为测试集,在剩余的四个折叠上拟合模型,在测试集上预测并计算感兴趣的度量。
接下来,我们将第二个折叠作为测试集,适用于剩余数据,预测测试集并计算感兴趣的指标。
默认情况下,scikit-learn的cross_val_score()
函数使用R^2
分数作为回归选择的指标。