使用 SVM 的 RBF 内核依赖于两个参数 C 和 gamma。如果核 RBF 的方程如下:
在等式中,我可以看到在哪里可以使用 gamma,但找不到 C 参数。那么,有人可以告诉我吗?
提前致谢,
使用 SVM 的 RBF 内核依赖于两个参数 C 和 gamma。如果核 RBF 的方程如下:
在等式中,我可以看到在哪里可以使用 gamma,但找不到 C 参数。那么,有人可以告诉我吗?
提前致谢,
SVM 中的 C 参数不必与核函数做任何事情。C 是与错误分类或违反最大边距的实例相关的惩罚。您可能已经知道,SVM 返回线性可分数据集(在内核空间中)的最大边距。
数据集可能不是线性可分的。在这种情况下,对应的 SVM 二次程序是不可解的。为了使其可解,我们重新定义了二次程序,以针对违反最大边际的点(错误分类的样本也违反最大边际)返回相对于某个误差成本 C 的最大边际。下面你可以看到我在网上找到的一个简单的例子。这使用线性内核,但其他非线性内核的情况也相同。
C对分类结果的影响如下图所示:
如您所见,如果您将错误惩罚设置得非常高,您最终会得到更少的错误分类和更少的支持向量(突出显示的点是 SV)。但是,如果在使用非线性内核(特别是高斯内核)时将其设置得太高,则可能会过拟合。
如果您对其背后的理论感兴趣,以下是我们正在尝试优化的内容:
如果我们写它的对偶,我们会得到:
看看有多方便!内核函数中没有C!
换句话说,您正在使用核函数将样本映射到更高维空间,然后使用一些惩罚项 C 来解决它。