SVM算法采用高斯核函数,核函数的参数对结果影响大吗

你的理解有一点问题。核函数调参的目的主要不是在于“能将数据正确划分”。因为我们训练时得到的仅仅是训练数据,能正确划分训练数据的模型不一定能正确划分泛化数据。举一个极端的例子,我们做一个模型,把训练数据里的正例存到一个列表里,预测时把这些数据跟列表里的这些正例匹配,匹配的是正例,不匹配的是反例。这个模型也能把数据正确划分,但是因为不具备泛化能力,给一个新的数据就不行了,所以没什么用处。

理解了这一点,再来说高斯核函数中这个参数的性质。
性质 1. 若RBF核中尺度参数σ趋于0,则拉格朗日乘子向量的所有分量都大于0,即全部样本点都是支持向量。
【SVM算法采用高斯核函数,核函数的参数对结果影响大吗】 性质1 说明,对于任意给定的训练集,只要σ\u0026gt;0且充分小,RBF核SVM必定可对所有训练样本正确分类,这很容易造成‘过学习’的情况。
性质 2. 当σ趋于无穷时,SVM的判别函数为一常函数,其推广能力或对新样本的正确分类能力为零,即把所有样本点判为同一类。

意思也就是说,σ越小的时候,高斯核函数的划分能力越强,也就是你所说的“不管怎样都可以线性划分”。但是σ如果过大,模型就会变成类似我一开始所提的那个直接与列表中的正例匹配的例子中的无用的模型,没有任何泛化能力。
而σ越大的时候,高斯核函数的划分能力越弱,此时模型不见得能把训练集中的所有数据正确划分。但是由于留出了一些余地,我们的模型就更有可能把测试集中“看起来可能是正例”的例子划为正例。这样我们的模型才会有所谓的泛化性能。

因此我们对高斯核函数进行调参,不是为了把我们现在看到的所有数据正确地线性划分,而是要在“正确划分当前数据”与“可能适用于更广泛的数据”这两点性能之间权衡,以寻求一个最佳的平衡点,使得我们的模型有最好的实用价值。

■网友
参数有时影响会很大。可以将训练数据交叉验证来选取参数。具体方法是:随机将训练数据分为N份(N可以是10,5等),取其中一份作为测试数据,其它N-1份作为训练数据。将参数取不同的值来训练和测试,将最好的测试结果对应的参数值保存,作为最优参数。多数时候,选取好的参数,RBF核的性能会比线性核好不少。但也有数据,最好的RBF核性能与线性核性能相差无几。
■网友
影响大,简单来说就是影响模型的分类效果和泛化性能,所以才会有网格搜索去选择这个参数和惩罚系数


    推荐阅读