Documentation here。
我想知道coef0
参数对于多项式和Sigmoid内核下的SVC有多重要。据我了解,它是截距项,就像线性回归中的常数一样,使函数从零偏移。但是据我所知,SVM(scikit使用libsvm)应该找到该值。
有什么好的通用范围可以测试(是否有?)。例如,通常使用C
,安全选择是10 ^ -5 ... 10 ^ 5,以指数级递增。
但是对于coef0
,该值似乎高度依赖数据,并且我不确定如何为每个数据集上的每个网格搜索自动选择合适的范围。有指针吗?
最佳答案
首先,S形函数很少是内核。实际上,对于几乎都不存在的参数值,已知会诱导有效内核(在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>
)]范围内进行搜索,其中max是通过所有训练集计算得出的。
关于svm - scikit学习svc coef0参数范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21390570/