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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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