交叉验证和改进

时间:2020-03-08 11:57:56

标签: machine-learning data-science cross-validation

我想知道交叉验证过程如何改善模型。我是这个领域的新手,热衷于学习。 我了解交叉验证的原理,但不了解交叉验证如何改进模型。假设该模型分为4倍,比起我在第3个第4个模型上训练我的模型并在最后一个模型上进行测试,该模型可以很好地训练。但是,当我通过在最后3个第四次训练模型并在第一个进行测试来重复此步骤时,大多数训练数据已经被模型“查看”了吗?如果已经看到正确的数据,该模型将无法改善?是使用不同训练数据集制作的模型的“均值”吗?

提前感谢您的时间!

2 个答案:

答案 0 :(得分:0)

通过4倍交叉验证,您可以有效地训练4种不同的模型。模型之间没有依赖关系,并且一个模型不能在另一个模型上进行训练。

稍后将发生什么取决于实现。通常,您可以访问所有经过培训的模型,然后由您自己处理。

答案 1 :(得分:0)

交叉验证实际上并不能改善模型,但是可以帮助您准确评估其性能。

比方说,在培训开始时,您将数据分为80%的训练和20%的测试集。然后,您在上述80%的基础上进行训练,并在20%的基础上进行测试,并获得性能指标。

问题是,当开始分离数据时,您希望这样做是随机的,否则可能是任意的,结果,所获得的模型性能在某种程度上取决于您使用的伪随机数生成器或你的判断。

因此,您可以将数据划分为例如5个随机相等的集合。然后,将第1组放在一边,放在第2-5组上训练,在第1组上进行测试并记录性能指标。然后,将第2组放在一边,并在第1组,第3-5组上训练一个新的(未经训练的)模型,在第2组上进行测试,记录该指标等等。

设置5组后,您将获得5个性能指标。如果取它们的平均值(最合适的一种),则可以更好地表示模型的性能,因为您正在“平均”数据分割的随机影响。

我认为在此blog中用Python的一些代码对此进行了很好的解释。