我需要创建一个使用 RBF 核和硬边界的 svm 分类器。如果我理解正确的话,边界类型是由 C 参数控制的。也就是说,C 参数越大,得到的硬边界就越严格。是否有一个典型的 C 值可以模拟一个非常稳健的“硬边界”?或者有其他方法可以模拟一个稳健的硬边界?当然,我们可以讨论为什么需要模拟硬边界。但在这种情况下,我需要模拟它!
clf = svm.SVC(C = ??,kernel="rbf",gamma =1.5,shrinking=False,cache_size=3000)
回答:
通常不需要那么大的值,但总的来说这就是这个想法。试着将其设置为 1e10,然后查看结果的 alphas。
如果没有一个 alphas 达到 C 值,就没有应用正则化(即所有点在训练集中都被正确分类 = 硬边界)。
顺便说一下,如果你的数据集非常嘈杂,并且无法用你使用的核分离,你就无法实现硬边界。