【发布时间】:2019-06-05 05:05:44
【问题描述】:
我正在尝试了解机器学习中模型评估和验证的过程。具体来说,必须以何种顺序以及如何使用训练、验证和测试集。
假设我有一个数据集,我想使用线性回归。我在各种多项式次数(超参数)中犹豫不决。
在this wikipedia article中,似乎暗示顺序应该是:
- 将数据拆分为训练集、验证集和测试集
- 使用训练集拟合模型(找到最佳参数:多项式的系数)。
- 之后,使用验证集找到最佳超参数(在本例中为多项式次数)(维基百科文章说:“成功地,拟合模型用于预测观察结果的响应第二个数据集称为验证数据集”)
- 最后,使用测试集对拟合训练集的模型进行评分。
但是,这对我来说似乎很奇怪:如果您还没有选择超参数(在这种情况下为多项式次数),如何让您的模型与训练集相匹配?
我看到了三种替代方法,我不确定它们是否正确。
第一种方法
- 将数据拆分为训练集、验证集和测试集
- 对于每个多项式次数,将模型与训练集进行拟合,并使用验证集为其打分。
- 对于得分最高的多项式次数,用训练集拟合模型。
- 使用测试集进行评估
第二种方法
- 将数据拆分为训练集、验证集和测试集
- 对于每个多项式次数,仅在验证集上使用交叉验证来拟合和评分模型
- 对于得分最高的多项式次数,用训练集拟合模型。
- 使用测试集进行评估
第三种方法
- 将数据分成两组:训练/验证集和测试集
- 对于每个多项式次数,仅在训练/验证集上使用交叉验证来拟合和评分模型
- 对于得分最高的多项式次数,使用训练/验证集拟合模型。
- 使用测试集进行评估
所以问题是:
- 是维基百科的文章有误还是我遗漏了什么?
- 我设想的三种方法是否正确?哪一个更可取?还有比这三种更好的方法吗?
【问题讨论】:
标签: machine-learning cross-validation train-test-split