Mar*_*oma 11
在机器学习中,您将数据拆分为训练集和测试集.训练集用于拟合模型(调整模型参数),测试集用于评估模型在看不见的数据上的效果.
过度拟合意味着您的模型在训练集上比在测试集上做得更好.它很好地适应了训练数据并且总体上很糟糕.
过度拟合可能有很多原因,通常是以下几种组合:
我有完全相同的问题,由于我无法根据现有答案真正理解原因,因此我进行了一些额外的搜索并思考了一段时间。这是我发现的。欢迎纠正我的错误之处。
\n\n过度拟合的主要原因是数据稀疏(对于给定模型)。
\n\n对于您给定的问题,此答案中提到的三个原因可以缩小为“稀疏数据”。这是一个需要理解的重要概念,因为数据的稀疏性取决于特征的数量。
\n\n如果您以最简单的形式思考任何概念并找到一种将其形象化的方法,那么理解任何概念总是更容易。
\n\n因此,让我们首先看看稀疏数据如何导致使用二维图来解决具有一个参数的问题的过度拟合。如果您的假设是高阶多项式并且数据点的数量很少,那么它就会与数据过度拟合。如果你有更多的数据点,但它不会过度拟合,因为它必须最小化许多数据点的平均误差(超过它可能过度拟合的程度),这会导致它从“中间”传递。\n
但后来我们了解到,同一问题还有一个附加功能。这意味着现有训练集的每个数据点还有一个描述它的第二个值,即第二个特征的值。如果我们现在尝试绘制它,我们可能会看到类似这样的内容:\n
这意味着我们之前看到的只是数据点在 y,\xce\xb81 平面上的投影,这就是我们错误地认为我们有足够数据点的原因。现在我们完整地看到了问题,我们可以说数据点不够,数据稀疏。
\n\n因此,通过添加一项附加功能,我们扩展了问题的空间,为其添加了一个维度,并且作为该空间一部分的数据点也随之扩展。
\n\n因此,如果我们尝试对这些数据进行假设,我们可能会得到这样的结果,这可能是过度拟合。
\n\n\n\n\n\n总之,添加更多特征会扩大假设空间,使数据更加稀疏,这可能会导致过度拟合问题。
\n一般来说,这只是一个例子 - 为了完美地适应非常复杂的数据集(嘈杂的数据集),您需要非常“扭曲”的曲线(因为您的函数通常是平滑的)。这不是真的,它总是看起来像这样,给定特定类别的近似器,您可以得到不同的现象,例如“尖峰”函数等。重点是 - 更多可调参数,更复杂的函数,并且由于您的训练集有限指定函数的实际值的地方 - 函数可以采用训练集之外的任何形状,这就是它被绘制为“wigly”的原因。
然而,反之则不然。如果你的参数很少,你仍然可能会过度拟合,并且具有“wigly”功能,请考虑例如
f(x) = cos(<w, x>)
Run Code Online (Sandbox Code Playgroud)
使用足够大的 w 范数,您可以使余弦任意“密集”,从而适合几乎任何数据的 -1、+1 标签