训练SVM的参数是什么

我正在使用机器学习库开发软件,使用的库是https://www.npmjs.com/package/machine_learning

根据SVM的示例:

svm.train({    C : 1.1, // 默认值 : 1.0. SVM中的C值     tol : 1e-5, // 默认值 : 1e-4. 更高的容忍度意味着更高的精度     max_passes : 20, // 默认值 : 20. 更高的最大通过次数意味着更高的精度     alpha_tol : 1e-5, // 默认值 : 1e-5. 更高的alpha容忍度意味着更高的精度     kernel : { type: "polynomial", c: 1, d: 5}    // 默认值 : {type : "gaussian", sigma : 1.0}     // {type : "gaussian", sigma : 0.5}     // {type : "linear"} // x*y     // {type : "polynomial", c : 1, d : 8} // (x*y + c)^d     // 或者你可以使用自己的核函数     // kernel : function(vecx,vecy) { return dot(vecx,vecy);} });

参数C告诉SVM优化算法你希望避免错误分类每个训练样本的程度。

我对其他参数不太理解。


回答:

只需查看软边界C-SVM的方程:

Primal C-SVM

它指出C定义了错误分类和边界之间的权衡。这必须根据你的数据选择足够大的值。你还会在这里看到eps>0参数。这可能是你的tolerance参数,它定义了目标函数中由C参数加权的误差。

对于kernel parameters,查看SVM的对偶问题:

Dual SVM

你会看到术语K(x_i,x_j)。这被称为Kernel-Function(核函数)。这个函数允许SVM学习非线性决策边界。因此,如果你的数据不是线性可分的,你可以使用这样的函数来转换你的数据,实际上是dot-product(点积),将其转换到更高维度的特征空间中,以便在那里进行分离。只需查看这个指南,它将教你SVM训练过程的基础知识和一些最佳实践:

https://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

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中创建了一个多类分类项目。该项目可以对…

发表回复

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