交叉验证和改进

Cross validation and Improvement

我想知道交叉验证过程如何改进模型。我是这个领域的新手,并且渴望学习。 我了解交叉验证的原理,但不了解它如何改进模型。假设模型被分成 4 倍,如果我在第 3 个第 4 个训练我的模型并在最后一个上测试模型会训练得很好。但是,当我通过在最后 3 个第四个上训练模型并在第一个上进行测试来重复此步骤时,大部分训练数据已经被模型 "reviewed" 了吗?该模型不会随着已经看到的数据而改进,对吗?它是 "mean" 使用不同训练数据集制作的模型吗?

提前感谢您的宝贵时间!

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

后面会发生什么取决于实施。通常,您可以访问所有经过训练的模型,然后由您决定如何处理。

交叉验证实际上并没有改进模型,但可以帮助您准确地对其性能进行评分。

假设在训练开始时,您将数据分成 80% 的训练集和 20% 的测试集。然后你训练所说的 80% 并测试 20% 并获得性能指标。

问题是,一开始分离数据时,您希望是随机的,或者是任意的,结果,您获得的模型性能在某种程度上依赖于您使用的伪随机数生成器使用或您的判断。

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

5 组后您将有 5 个性能指标。如果你取他们的平均值(最合适的那种),这将更好地代表你的模型性能,因为你是 'averaging out' 数据拆分的随机效应。

我认为这个 blog 和 Python 中的一些代码解释得很好。