SVM,变量交互和训练数据拟合


12

我有2个一般/更多理论问题。

1)我很好奇在建立预测模型时SVM如何处理变量交互。例如,如果我有两个特征f1和f2,并且目标取决于f1,f2,并说f1 * f2(或某些函数h(f1,f2)),则SVM是否适合(不仅适用于OOS,甚至适用于训练数据)在仅包括f1和f2的特征中包括f1,f2和h(f1,f2)时是否有所改善?SVM算法处理特征交互吗?SVM如何尝试在更高维度的空间中创建超平面,但似乎并不确定。

2)在将SVM拟合训练数据时,如果具有足够的功能并找到最佳参数(通过蛮力搜索或其他方法),SVM会总是琐碎地拟合训练数据吗?不知道我的措词是否正确,但是基本上,如果功能中有足够的方差/噪声,SVM是否总是100%适合训练数据?相反,如果SVM无法100%拟合训练数据,这是否意味着某些影响目标变量的信息(或其他功能)并未在数据中捕获?

谢谢

小澄清。我指的是内核SVM

Answers:


8

正如highBandwidth所建议的那样,这取决于您使用的是线性SVM还是非线性的SVM(如果不使用内核,这是古怪的,它是最大余量线性分类器,而不是SVM)。

最大余量线性分类器与任何其他线性分类器没有什么不同,如果数据生成过程意味着属性之间存在交互,则提供这些交互项可能会提高性能。最大余量线性分类器类似于ridge回归,在惩罚项上略有差异,旨在避免过度拟合(为正则化参数提供合适的值),并且在大多数情况下,ridge回归和最大余量分类器将提供相似的性能。

如果你认为互动方面可能是重要的,那么你可以通过使用多项式内核介绍他们到SVM的特征空间,其中将给出一个特征空间,其中每个轴表示或更小的阶多项式,参数影响不同阶的单项式的相对权重。因此,具有多项式内核的SVM等效于在属性空间中拟合多项式模型,该模型隐式地合并了这些交互。K(x,x)=(xx+c)ddc

给定足够的功能,任何线性分类器都可以轻松拟合数据。IIRC 在维空间中“一般位置”中的点可以通过超平面(比照VC维)来粉碎(以任意方式分离)。这样做通常会导致严重的过度装配,因此应避免。最大余量分类的目的是通过添加惩罚项来限制这种过度拟合,这意味着要实现最大的分隔(这将需要与任何训练示例的最大偏差才能产生错误分类)。这意味着您可以将数据转换为一个高维空间(线性模型非常强大),而不会产生过多的过拟合。nn1

请注意,某些内核会产生一个无穷维的特征空间,对于一般位置上的任何有限训练样本,其中的“琐碎”分类都是可能的。例如,径向基函数内核,其中特征空间是无限维超球面的正正数。这样的内核使SVM成为通用逼近器,它基本上可以表示任何决策边界。K(x,x)=expγxx2

但是,这只是故事的一部分。在实践中,我们通常使用软保证金SVM,其中允许违反保证金约束,并且有一个正则化参数可控制在最大化保证金之间进行权衡(这是一个惩罚项,类似于岭回归)和松弛变量的大小(类似于训练样本的损失)。然后,我们通过调整正则化参数来避免过度拟合,例如,通过最小化交叉验证误差(或留出遗漏的误差),就像在脊回归中一样。

因此,尽管SVM 可以对训练集进行简单分类,但通常只有在错误选择正则化和内核参数的情况下,SVM 才会这样做。使用任何内核模型获得良好结果的关键在于选择合适的内核,然后调整内核和正则化参数以避免数据过拟合或过拟合。


感谢Dikran。那是非常详细和有益的。我想我理解问题的答案。快速跟进。如何为SVM选择合适的内核?它会类似于正则化/内核参数(例如,通过交叉验证)吗?还是有一些理论上的选择依据?如果rbf内核使SVM成为通用逼近器,我猜内核选择是另一个需要调整的参数,但不确定。如您所知,我对此很陌生。
tomas 2012年

选择内核通常是将问题的专业知识整合到分类器中的一种好方法,例如,对于手写字符识别系统,您可能希望使用不变于图像的小旋转和平移的内核。自动选择内核可以通过交叉验证(这是我要做的)或限制遗留错误(可以对SVM有效执行)来实现。但是,如果数据集很小,则由于交叉验证误差过大,因此通过交叉验证选择内核可能很棘手。
迪克兰有袋博物馆,2012年

对于许多应用程序而言,线性或RBF内核是很好的默认选择,而探索更广范围的内核(在缺乏专家问题知识的情况下)通常收益不多。
迪克兰有袋博物馆,2012年

1

答案取决于您使用的是线性SVM还是内核SVM。使用线性SVM,您仅使用所提供的功能,而没有考虑交互作用。借助内核SVM,基本上,您会使用许多不同的功能,具体取决于您选择的内核。如果存在一个分离的超平面,即,确定了其中是功能,那么您就可以完全拟合训练数据。通常,您不指定功能部件,而是将与功能部件相关的内核指定为。查找再现内核Hilbert空间。sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.