Machine learning K-Fold如何防止模型中的过度拟合

Machine learning K-Fold如何防止模型中的过度拟合,machine-learning,scikit-learn,deep-learning,cross-validation,supervised-learning,Machine Learning,Scikit Learn,Deep Learning,Cross Validation,Supervised Learning,我正在训练一个多层感知器。我有两个问题,第一个问题是K折叠如何防止过度拟合,因为训练测试分割也会做同样的事情,接受训练部分并验证模型,与K折叠相同,而不仅仅是有多个折叠。但是在训练测试分割中有一个过度拟合的机会,那么K折叠是如何防止的,因为在我的感知模型中,K折叠的训练部分也会过度拟合,你认为呢? 第二个问题是,我从K fold中获得了95%以上的准确度,先生告诉我,差异太大了,因为K fold解决了这种过度拟合问题,这怎么可能呢?K fold有助于过度拟合,因为与一次过拟合相比,您基本上将数据

我正在训练一个多层感知器。我有两个问题,第一个问题是K折叠如何防止过度拟合,因为训练测试分割也会做同样的事情,接受训练部分并验证模型,与K折叠相同,而不仅仅是有多个折叠。但是在训练测试分割中有一个过度拟合的机会,那么K折叠是如何防止的,因为在我的感知模型中,K折叠的训练部分也会过度拟合,你认为呢?
第二个问题是,我从K fold中获得了95%以上的准确度,先生告诉我,差异太大了,因为K fold解决了这种过度拟合问题,这怎么可能呢?

K fold有助于过度拟合,因为与一次过拟合相比,您基本上将数据拆分为各种不同的列车测试拆分。通过在多个不同的集合(而不是一个集合)上运行列车测试拆分,您可以更好地了解模型在数据集和未查看的数据上的实际执行情况。这并不能完全阻止它,归根结底,这一切都取决于一天结束时的数据(如果您接受的培训、测试和验证的数据不能真正代表未来的点,那么您仍然可以使用过度拟合的模型)

K-Fold交叉验证本身不会减少过度拟合,但使用它通常会让您对模型有更好的了解,最终可以帮助您避免或减少过度拟合

使用一个简单的训练/验证分割,如果分割的方式不能指示真实的数据分布,那么模型可能表现良好。K-Fold交叉验证将数据分割为
K
块,并使用特定块作为验证集,使用剩余块作为训练集,执行训练
K
次。因此,该模型可能在某些训练折叠上表现良好,但在其他训练折叠上表现相对较差。这将使您更好地了解模型的实际性能

如果获得了相对较高的训练精度,但验证精度显著较低,则表明过度拟合(高方差和低偏差)。我们的目标是将方差和偏差保持在较低的水平,可能以稍微降低训练精度为代价,因为这将表明所学的模型已经很好地推广到了看不见的实例。你可以在网上阅读更多


如中所述,选择折叠的数量也可能在这一洞察中发挥作用。根据数据的大小,与验证数据相比,使用的训练折叠可能太大。

K折叠交叉验证不能防止过度拟合。这意味着95%以上的准确率表明我处于过度拟合状态,如果是,如何解决@Matias Valdenegroy你问的问题太广泛了,没有人能告诉你“95%+”的准确度是否过拟合,是否缺少信息。简短回答:没有(正如@Matias Valdenegro已经指出的那样)。交叉验证(CV)本身既不会减少过拟合,也不会优化任何东西。“过度拟合”一词不会出现在您链接的线程中的任何位置(除了被严重否决的答案)。“如果模型在一个特定的训练折叠上过度匹配”,其他折叠不会抵消任何作用。你的第三个段落与CV无关,在CV中,人们通常看不到训练的准确性(只有验证折叠中的那些)。我善意地建议你更多地关注这个问题,因为你听起来有点困惑。@desertnaut是的,你是对的,我的意思是它给出了一个关于过度拟合的更好的指示&我更新了我的答案以反映这一点。我提到了训练的准确性来解释一个模型为什么会有“太多的差异”,即使获得了相对较高的性能。在编辑了一点你的答案后,收回了否决票。请记住,如果我们不清楚、准确地向他人揭示我们的意思,那么我们的意思就毫无意义;试着找到OP的鞋,他使用CV是因为每个人似乎都建议他们它(神奇地?)减少了过度贴合,现在有理由感到困惑(“我已经应用了CV,我怎么还能过度贴合呢?”)