一个非常简单的问题:什么是交叉验证?
据我了解,交叉验证用于选择模型而不是模型的参数,但我想检查我是否正确。著名的 k 折叠,如下图所示:
使用个训练-测试样本组合来训练和测试模型,用于避免过度拟合。
因此,如果我们有一个模型 M,该模型是针对每个训练测试组合从头开始训练的吗?
那么这些步骤正确吗?
repeat k times:
train M with sample train[i]
predict test[i] with M
compute MeanSquaredError[i] for test[i]
i = i+1
end repeat
compute mean of MeanmumSquaredError
由于每次都重新训练模型,这仅用于检查模型是否选择得当,而不是模型的参数,对吗?
更新:假设模型 M 是一个具有一个隐藏层的神经网络。例如,您是否使用交叉验证来选择隐藏层中的神经元数量?