在利用支持向量机进行分类的时候怎么选择合适的核函数?

Andrew Ng理论1:当数据量足够庞大时,feature足够多时,所有的分类算法最终的效果都差不多。也就是说,不管你选用什么样的核,在训练集够大的情况下都是然并卵。当然,就分类效果来说,非线性的比线性的核好一些。但线性的也能够有很不错的分类效果,而且计算量比非线性小,所以需要具体情况具体分析。

Andrew Ng理论2:老实人Andrew教你如何选择合适的SVM核。
情况1:当训练集不大,feature比较多的时候,用线性的核。因为多feature的情况下就已经可以给线性的核提供不错的variance去fit训练集。
情况2:当训练集相对可观,而feature比较少,用非线性的核。因为需要算法提供更多的variance去fit训练集。
情况3:feature少,训练集非常大,用线性的核。因为非线性的核需要的计算量太大了。而庞大的训练集,本身就可以给非线性的核提供很好的分类效果。

作者:邱霸气
链接:https://www.zhihu.com/question/33268516/answer/57436016
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


我在实习的时候,请教过某985院校数学学院高材生这个问题,他的回答是:

他们在处理SVM如何选择核函数这个问题的时候,有一套相对成熟的方法来判断当前数据集大致适合哪一种核函数,and更多的时候,这个“适合当前数据集的核函数”不是现成就有的,是需要他们自己去编程实现的。

听完后,我当时瞬间在心中膜拜了一下!!

后来通过实习,慢慢地发现,商业领域对于机器学习算法的选择,并不倾向于选择像SVM这种高大上机器学习算法(它们就像黑盒子,虽然很牛逼,但你却不能很好地解释它的工作成果,比如在所有特征集中,到底哪个变量更重要,它们是怎么影响因变量变化的等等)。相反,LR和Decision Tree这两种算法,就相当吃香。

楼主如果不是用SVM做学术的话,没必要去深究哪种核函数更合适?
原因一,上面已经说了。
原因二,SVM现成的核函数,就那么几个,挨个挨个试也可以找到相对最优的。BUT,但我理解的SVM过度依赖参数,除了过度依赖合适的核函数外,SVM还过度的依赖当前核函数下的具体参数。

作者:知乎用户
链接:https://www.zhihu.com/question/33268516/answer/57579127
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页