使用RBFKernel(C和gamma)优化SMO

时间:2010-03-10 19:22:16

标签: data-mining classification svm pentaho weka

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

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

根据A User's Guide to Support Vector Machines

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

γ> 0是控制高斯

宽度的参数

1 个答案:

答案 0 :(得分:3)

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

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

他们在R中发布了一个GPLed算法实现,您可以从CRAN here下载。

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