【发布时间】:2012-05-26 02:24:54
【问题描述】:
在线性或逻辑回归中,如果我们找到一个完美拟合训练集的假设函数,那么这应该是一件好事,因为在这种情况下,我们已经使用了 100% 的信息来预测新信息。
虽然它被称为过度拟合并被称为坏事。
通过使假设函数更简单,我们实际上可能会增加而不是减少噪声。
为什么会这样?
【问题讨论】:
标签: algorithm machine-learning linear-regression
在线性或逻辑回归中,如果我们找到一个完美拟合训练集的假设函数,那么这应该是一件好事,因为在这种情况下,我们已经使用了 100% 的信息来预测新信息。
虽然它被称为过度拟合并被称为坏事。
通过使假设函数更简单,我们实际上可能会增加而不是减少噪声。
为什么会这样?
【问题讨论】:
标签: algorithm machine-learning linear-regression
当您尝试“太努力”以使训练集中的示例符合分类规则时,就会发生过度拟合。
这被认为是坏事主要有两个原因:
示例:
根据奥卡姆剃刀,您应该容忍错误分类的样本,并假设它是噪声或不显着,并采用此数据集中的简单解决方案(绿线):
【讨论】:
p>0 训练集中的一个分类或特征是错误的(这通常是统计上的情况),那么正确分类所有n 样本的机会是(1-p)^n。很容易看出,对于 5% 的错误 (p=0.05),after only 14 examples, the probability of having all samples classified correctly is less then 50%
过度拟合被称为坏的,因为它对真正的解决方案有一定的影响。过度拟合的解决方案是 100% 拟合所使用的训练数据,但添加任何小数据点后,模型将发生巨大变化。这称为模型的方差。因此,我们尝试在这两个因素之间取得平衡,从而进行 bais-variance 权衡,以便模型不会因数据的小幅变化而发生剧烈变化,而且还能合理地正确预测输出。
【讨论】:
实际上,该陈述并不完全正确。如果您的假设函数是线性的,那么匹配 100% 的数据是完全可以的。每个连续非线性函数都可以通过一个线性函数在局部近似,该线性函数给出了关于它的局部行为的重要信息。
如果数据匹配 100%,也可以将 100 个数据点与二次曲线匹配。您可以确信自己没有过度拟合数据,因为数据始终显示二次行为。
但是,使用足够高次数的多项式函数总是可以得到 100% 的拟合。但是,即使没有其他人指出的噪音,您也不应该假设您的数据具有某种高度多项式行为,而没有对该假设进行某种理论或实验确认。表明多项式行为的两个良好指标是:
但请注意,尽管 指数和倒数 关系可能具有符合足够高次数多项式的数据,但它们并不倾向于遵守上述两个条件中的任何一个。
关键是您的数据拟合需要对预测有用。您总是知道线性拟合会在本地提供信息,但是拟合的点越多,该信息就越有用。即使只有两个点和噪声,线性拟合仍然可以给出迄今为止收集的数据的最佳理论外观,并建立数据的第一个期望值。但是,除此之外,对三点使用二次拟合或对四点使用三次拟合并不能有效地提供更多信息,因为它假设局部和渐近行为信息都加上一个点。你需要为你的假设函数提供理由。这种理由可以来自更多观点或理论。
(有时会出现的第三个原因是
这通常用于在没有良好理论起点的情况下理解数据以构建理论模型。您仍然应该努力使用尽可能小的多项式次数,并用它们在无限级数中可能表示的(倒数、指数、高斯等)替换系数中的模式。)
【讨论】:
尝试以这种方式想象它。您有一个函数,您可以从中选择 n 不同的值来表示样本/训练集:
y(n) = x(n), n is element of [0, 1]
但是,由于您想建立一个稳健的模型,因此您想在训练集中添加一点噪音,因此您实际上在生成数据时添加了一点噪音:
data(n) = y(n) + noise(n) = x(n) + u(n)
u(n) 我用平均 0 和标准差 1 标记了一个均匀随机噪声:U(0,1)。很简单,这是一个噪声信号,它最有可能取值0,不太可能取值远离0。
然后你抽取 10 个点作为你的训练集。如果没有噪音,他们都会躺在一条线上y = x。由于存在噪声,可以表示它们的多项式函数的最低阶可能是 10 阶的,函数类似于:y = a_10 * x^10 + a_9 * x^9 + ... + a_1 * x + a_0。
如果您考虑,仅使用来自训练集的信息的估计,您可能会得到一个比 10 阶多项式函数更简单的函数,并且它会更接近真正的功能。
进一步考虑,您的真实函数的值可能在[0, 1] 区间之外,但由于某种原因,只能从该区间收集训练集的样本。现在,在训练集的区间之外,一个简单的估计可能会明显更好,而如果我们要完美地拟合训练集,我们会得到一个 overfitted 函数蜿蜒曲折,一路跌宕起伏:)
【讨论】:
假设您的回归解释了数据中所有的偏差来源,那么您可能会争辩说您的回归完全适合数据。但是,如果您知道系统中的所有(我的意思是所有)影响,那么您可能不需要回归。您可能有一个可以完美预测新信息的分析解决方案。
实际上,你所掌握的信息将达不到这个完美的水平。噪声(测量误差、部分可观测性等)会导致数据出现偏差。作为回应,回归(或其他拟合机制)应寻求数据的总体趋势,同时尽量减少噪声的影响。
【讨论】:
因为您实际上并没有从您的训练集中“学习”任何东西,所以您只是适应了您的数据。
想象一下,你有一个一维回归
x_1 -> y_1
...
x_n -> y_1
这样定义的函数
y_n, if x = x_n
f(x)=
0, otherwise
会给你完美契合,但实际上没用。
希望,这有点帮助:)
【讨论】: