7

文档在这里

我想知道该coef0参数对于多项式和 sigmoid 内核下的 SVC 有多重要。据我了解,它是截距项,只是线性回归中的一个常数,用于将函数从零偏移。但是据我所知,SVM(scikit 使用libsvm)应该找到这个值。

测试的一般范围是什么(有吗?)。例如,一般情况下C,安全的选择是 10^-5 ... 10^5,以指数级递增。

但是对于coef0,该值似乎高度依赖数据,我不确定如何自动为每个数据集上的每个网格搜索选择好的范围。任何指针?

4

1 回答 1

4

首先,sigmoid 函数很少是内核。事实上,对于几乎没有参数值,已知会诱导有效内核(在 Mercer 的意义上)。

其次,coef0 不是截距项,它是核投影的一个参数,可以用来克服多项式核的重要问题之一。一般来说,只使用coef0=0应该就可以了,但是多项式核有一个问题,使用p->inf,它越来越多地分离一对点,对于<x,y>小于1并且<a,b>具有更大的值。这是因为小于 1 的值的幂越来越接近于 0,而大于 1 的相同值的幂增长到无穷大。您可以使用 coef0 来“缩放”您的数据,因此没有这种区别 - 您可以添加1-min <x,y>,因此没有值小于 1 。如果你真的觉得需要调整这个参数,我建议在 [min(1-min , 0),max(<x,y>)],其中最大值是通过所有训练集计算的。

于 2014-01-27T22:21:33.523 回答