SVM: 成本参数与支持向量数量的关系

我在R语言中使用e1071库来训练SVM模型,通过改变成本函数并观察生成的支持向量的数量。

library("e1071")library("mlbench")data(Glass, package="mlbench")svm.model <- svm(Type ~ ., data = Glass, cost = 0.00100, gamma= 1)sum(svm.model$nSV)#[1] 208svm.model <- svm(Type ~ ., data = Glass, cost = 1, gamma= 1)sum(svm.model$nSV)#[1] 183svm.model <- svm(Type ~ ., data = Glass, cost = 100000, gamma= 1)sum(svm.model$nSV)#[1] 172

我的问题是:这里的成本参数是否等同于软间隔SVM的对偶拉格朗日公式中的C参数?如果这两个参数是相同的,那么我们不应该观察到支持向量数量的增加吗?

“然而,在任何正则化方案中,选择适当的C值(惩罚因子)至关重要。如果C值过大,我们对不可分点的惩罚过高,可能会存储许多支持向量并导致过拟合。如果C值过小,可能会导致欠拟合。”Alpaydin (2004),第224页

所展示的例子表明,成本参数越大,我们得到的支持向量就越少。这里出了什么问题?

[编辑1] 我与提到的库的编辑们交换了一些电子邮件,他提供了一个反例。

“基本上,是的,但这不是线性的,试试这个:”

N = sapply(1:1000, function(i) svm(Species ~ ., data = iris, cost = i)$tot.nSV)plot(N)


回答:

我从库的创建者那里收到了这个回答:

基本上,是的,但这不是线性的,试试这个:

N = sapply(1:1000, function(i) svm(Species ~ ., data = iris, cost = i)$tot.nSV)

plot(N)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注