Answers:
@ffriend有一个很好的帖子,但是一般来说,如果您转换到高维特征空间并从那里进行训练,则学习算法将被“强制”考虑到高空间特征,即使它们可能没有任何特征与原始数据有关,并且没有提供预测质量。
这意味着您在训练时不会适当地概括学习规则。
举一个直观的例子:假设您要根据身高预测体重。您拥有所有这些数据,对应于人们的体重和身高。让我们说,通常,它们遵循线性关系。也就是说,您可以将体重(W)和身高(H)描述为:
,其中是线性方程式的斜率,是y轴截距,在这种情况下,是W轴截距。b
假设您是一位经验丰富的生物学家,并且您知道这种关系是线性的。您的数据看起来像一个散点图,呈上升趋势。如果将数据保留在二维空间中,则将使其适合一条线。它可能无法解决所有问题,但是没关系-您知道该关系是线性的,无论如何都需要一个很好的近似值。
现在,假设您获取了此二维数据并将其转换为更高维的空间。因此,您不仅增加了,还增加了5个维度:,,,和。ħ 2 ħ 3 ħ 4 ħ 5 √
现在,您去寻找多项式的系数以适合此数据。也就是说,您要针对此“最适合”数据的多项式找到系数:
如果这样做的话,您会得到什么样的评价?您会得到一个看起来很像@ffriend最右图的图。您已经过度拟合了数据,因为您“强迫”学习算法要考虑与任何无关的高阶多项式。从生物学上讲,体重只是线性地取决于身高。它不依赖或任何更高阶的废话。
这就是为什么如果您盲目地将数据转换为高阶维度,则可能会出现过度拟合而不是概括的非常糟糕的风险。
假设我们正在尝试使用线性回归(这实际上是SVM所做的事情)在平原上找到近似2D点集的函数。在下面的3张图像中,红叉标记是观测值(训练数据),而3条蓝线表示方程式,其中多项式的阶数不同,用于回归。
第一图像由线性方程生成。如您所见,它反映的点非常差。之所以称为欠拟合,是因为我们给学习算法的“自由度”太小(多项式太小)。二阶图像要好得多-我们使用了二阶多项式,看起来还不错。但是,如果我们进一步提高“自由度”,我们将获得第三张图像。蓝线恰好穿过十字架,但您认为这条线确实描述了依赖性吗?我不这么认为。是的,在训练集上,学习误差(十字和直线之间的距离)很小,但是如果我们再添加一个观察值(例如,来自真实数据),则其误差很可能比使用第二个方程式的误差大得多。图片。这种效应称为过拟合-我们试图太紧跟培训数据并遇到麻烦。使用单个变量的多项式是内核的一个简单示例- 我们使用多个(,,等)代替一维()。您会看到将数据转换为高维空间可能有助于克服欠拟合问题,但也可能导致过度拟合。真正的挑战是找到“正确的”。几个提示,供您进一步研究此主题。您可以使用称为交叉验证的过程来检测过度拟合x x 2 x 3。简而言之,您将数据分为10个部分,其中9个用于训练,1个用于验证。如果验证集上的错误比训练集上的错误高得多,则说明您过大了。大多数机器学习算法使用一些参数(例如SVM中的内核参数)来克服过度拟合的问题。另外,这里一个流行的关键字是正则化 -直接影响优化过程的算法修改,字面意思是“不要太紧跟训练数据”。
顺便说一句,我不确定DSP是否是解决此类问题的合适地点,也许您也将有兴趣访问CrossValidated。
您进一步阅读了吗?
在6.3.10节的末尾:
“但是,通常必须设置内核的参数,选择不当会导致糟糕的泛化。针对给定问题的最佳内核选择仍未解决,并且针对特定问题(例如文档分类)也衍生了特殊内核。 ”
这使我们转到第6.3.3节:
“ 可接受的内核必须在功能空间中表示为内部产品,这意味着它们必须满足Mercer的条件”
内核受其自身相当困难的区域影响,您可以拥有大量数据,其中不同部分应在其中应用不同的参数,例如平滑处理,但不知道确切的时间。因此,这样的事情很难一概而论。