请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于多项式核函数‘poly

bobo老师,对于多项式核函数‘poly中的两个超参数degree,coef0:在前面老师事先使用核函数解决非线性问题的时候,取degree=3,并没有设定coef0的值。但是在推导的过程中,对于二次项多项式的核函数,老师取的degre=2,coef0=1来证明出和变形后点乘结果二者是相等的;但是使用时只指定了degree=2,并没有指定coef0=1,此时coef0取得时默认值0.0,但是这时推导不成立了吧?不知道老师理解我的疑惑了没有?

正在回答

1回答

理解你的意思:)


在我们这一页的推导中:

https://img1.sycdn.imooc.com//szimg/5b308d71000135bc09900552.jpg


只是举一个例子,表示当核函数是(x,y+1)^2的形态的时候,相应的,x就有degree=2的多项式特征x'和他对应。通过这个例子,我只是想说明,degree=k,coef0=c的poly核函数,可以相应的对应degree=k的原特征的多项式特征。具体在这个例子中,我推导出当degree=2,coef0=1的时候,对应的x的degree=2的多项式特征x'是什么样子。


如果coef0=0,上述推导不成立,但是会有其他的x'和这个核函数对应,也是degree=2的。对于任意degree和coef0,推导出其对应的x'的通用公式,很复杂,超出这个课程的范畴了。由于上述式子很容易找到x',所以我使用它举例:)


而实际上,这也正是核函数的优点。我们可以直接将多项式核函数放在SVM的方程中,而不需要先使用多项式特征扩充原先的x。我们可以直接假想两个特征做点乘的样子,而不需要具体知道什么样的特征点乘出这个样子。对于多项式核,我们的多项式核函数就是这个样子:

https://img1.sycdn.imooc.com//szimg/5b308f690001644f10010559.jpg


其中,c和d是超参数:)


从中,你也可以看出,不仅仅是d,c也将影响x'的样子,所以势必影响SVM算法的结果。所以,在sklearn的文档中,会标注出:对于coef0这个参数,会在kernel是poly的时候产生影响:)

https://img1.sycdn.imooc.com//szimg/5b308fd900015d1506890092.jpg


具体SVC在sklearm中的文档,参见这里:http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html


希望我解释明白了:)

加油!

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信