【发布时间】:2019-10-09 18:14:31
【问题描述】:
我是 python 和机器学习的新手,我很难理解验证步骤,我也想就当我不想使用 k-folds 交叉验证时该怎么做提出建议,而只是使用验证集。我一直在阅读,似乎无法正确掌握 k 折交叉验证:
我是否将 INITIAL 数据拆分为 k 个折叠,然后在 k-1 上训练并在左侧 1 处进行测试,继续向后旋转 - 所以每个折叠都用于测试等。
或者我是否将 INITIAL 数据拆分为 Train 和 TEST 数据 - 然后将 Train 数据拆分为 k 折并进行交叉验证,最后在未见过的 TEST 数据上测试准确性?
在 k 折交叉验证期间如何选择最佳参数? 返回分数列表后的 cross_val_score 是否在准确性最佳的验证步骤中应用最佳参数? (代码如下)
model = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(model, X, y, cv=5)
或者这一步应该手动完成(由我)?通过使用gridsearchcv等?
- 在我的情况下,我有一个包含 400.000 个样本(可以说是行)和大约 70 个特征(列)的初始数据集 在我的数据集上执行 k 折交叉验证需要很长时间(据我了解,这主要是用于较小的数据集),相反,我希望有 3 组数据:训练(90%)验证(5%)和测试(5%)——在这 5% 上进行验证并在该步骤中调整我的模型参数,然后最后检查测试集的准确性。怎么做?
【问题讨论】:
标签: machine-learning scikit-learn data-science cross-validation supervised-learning