使用 RBFKernel 优化 SMO(C 和 gamma)

发布于 2024-08-24 19:48:40 字数 395 浏览 13 评论 0原文

将 RBF 核与支持向量机结合使用时有两个参数:C 和 γ。事先并不知道 C 和 γ 哪个最适合一个问题;因此,必须进行某种模型选择(参数搜索)。目标是识别好的(C;γ),以便分类器可以准确地预测未知数据(即测试数据)。

weka.classifiers.meta.GridSearch 是一个用于调整一对参数的元分类器。然而,似乎需要很长时间才能完成(当数据集相当大时)。为了减少完成这项任务所需的时间,您建议做什么?

根据支持向量机用户指南

C:软边距常数。较小的 C 值允许忽略靠近边界的点,并增加边距。

γ> 0是控制高斯宽度的参数

There are two parameters while using RBF kernels with Support Vector Machines: C and γ. It is not known beforehand which C and γ are the best for one problem; consequently some kind of model selection (parameter search) must be done. The goal is to identify good (C;γ) so that the classier can accurately predict unknown data (i.e., testing data).

weka.classifiers.meta.GridSearch is a meta-classifier for tuning a pair of parameters. It seems, however, that it takes ages to finish (when the dataset is rather large). What would you suggest to do in order to bring down the time required to accomplish this task?

According to A User's Guide to Support Vector Machines:

C : soft-margin constant . A smaller value of C allows to ignore points close to the boundary, and increases the margin.

γ> 0 is a parameter that controls the width of Gaussian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独自唱情﹋歌 2024-08-31 19:48:41

Hastie 等人的 SVMPath 探索了整个正则化C 的路径,只需要与训练单个 SVM 模型大致相同的计算成本。从他们的论文中:

我们的 R 函数 SvmPath 计算混合示例中的所有 632 个步骤 (n+ = n− =
100,径向内核,γ = 1) 在 pentium 4、2Ghz Linux 机器上需要 1.44(0.02) 秒;支持向量机
函数(使用 R 库 e1071 中的优化代码 libsvm)需要 9.28(0.06)
秒计算路径上 10 个点的解。因此需要我们的程序
计算整个路径的时间比 libsvm 计算典型路径的时间多大约 50%
单一解决方案。

他们在 R 中发布了该算法的 GPL 实现,您可以从 CRAN 下载 在这里

使用 SVMPath 应该可以让您快速找到任何给定 γ 的良好 C 值。但是,您仍然需要针对不同的 γ 值进行单独的训练运行。但是,这应该比为每对 C:γ 值单独运行快得多

Hastie et al.'s SVMPath explores the entire regularization path for C and only requires about the same computational cost of training a single SVM model. From their paper:

Our R function SvmPath computes all 632 steps in the mixture example (n+ = n− =
100, radial kernel, γ = 1) in 1.44(0.02) secs on a pentium 4, 2Ghz linux machine; the svm
function (using the optimized code libsvm, from the R library e1071) takes 9.28(0.06)
seconds to compute the solution at 10 points along the path. Hence it takes our procedure
about 50% more time to compute the entire path, than it costs libsvm to compute a typical
single solution.

They released a GPLed implementation of the algorithm in R that you can download from CRAN here.

Using SVMPath should allow you to find a good C value for any given γ quickly. However, you would still need to do separate training runs for different γ values. But, this should be much faster than doing separate runs for each pair of C:γ values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文