《机器学习实战》和Udacity的ML学习笔记之 支持向量机&kernel


1. 支持向量机&支持向量

支持向量机实质就是一个二分类的线性分类器,支持向量就是数据集中的一些点,这些点到分类线条的距离最短,用来求解分类线条模型。如果无法通过直线分类,就需要通过一些技巧,将数据投射到更高的维度。这些技巧就是核(kernel).

2. 核函数(kernel method)

核函数有很多种,只要符合Mercer Condition即可
一般SVM所使用核函数是:k(x_1,x_2) = x_1^Tx_2或者:k(x1,x2)=(x1Tx2)**2

其它的核函数:
这里写图片描述
黄色高亮部分为高斯核,在基于实例学习中的加权线性回归也用到了高斯核,那时时用来为数据点提供权重值。
参考:
1.机器学习里的 kernel 是指什么?
2.机器学习有很多关于核函数的说法,核函数的定义和作用是什么?

3.核函数的可用条件和选择:

核函数需要满足的条件即为:Mercer’s condition ,即函数需满足对称性和正定性,所谓的对称性就是比如上述定义中φ(x)∙φ(y)= φ(y)∙φ(x),而所谓的正定性定义如下(核函数会对应Gram矩阵),当矩阵M所有的特征值大于零的前提下,根据谱定理,必然存在一个对角矩阵D与M相似(M = P-1DP),通俗的理解就是点M落在以P-1,P 为基的空间中,其特征值M就是在这组基空间下的具体点值。——摘自机器学习中对核函数的理解

如何选择核函数,似乎没有定论:

几种核函数及其区别:
part1:

直接看libsvm作者自己写的guide吧:
A Practical Guide to Support Vector Classification
3.1里有讲,简单说一下就是:
1.RBF kernel可以处理非线性的情况,linear kernel可以是RBF kernel的特殊情况,sigmoid kernel又在某些参数下和RBF很像
2.polynomial kernel的参数比RBF多,而参数越多模型越复杂
3.RBF kernel更方便计算,取值在[0,1];而用polynomial> kernel取值范围是(0,inf),在自由度高的情况下更凸显出劣势;至于sigmoid,它可能在某些参数下是无效的
当然有些情况下用linearkernel就好了,比如特征维数很高的时候。
摘自:[SVM的核函数如何选取?(https://www.zhihu.com/question/21883548/answer/140850727)

就是说,RBF kernel(径向基函数)在一般情况下都适用,且更方柏霓计算,取值在(0,1],除非参数很多的情况下,才需要用多项式核去处理。


part2:

一般用线性核和高斯核,也就是Linear核与RBF核需要注意的是需要对数据归一化处理,很多使用者忘了这个小细节,然后一般情况下RBF效果是不会差于Linear,但是时间上RBF会耗费更多,其他同学也解释过了
1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
摘自:SVM的核函数如何选取?

就时说,考虑两个因素,样本量核特征数量。如果样本量大,优先考虑用线性核,特征不够手工补。样本量一般,特征数量很大,可以考虑线性核。

其它参考:
SVM的核函数如何选取?


4.综合参考:

0.机器学习中对核函数的理解
1.Udacity课件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值