SVM(支持向量机)学习笔记

一、SVM原理

SVM的理论基础可以从最简单的线性分类问题来推出,间隔最大的分类器具有最好的泛化性(源自Margin理论)。但由于线性问题的局限性,SVM通过使用核函数进行输入空间到核特征空间上的映射,成功的转化为可表达任意非线性问题。核函数的对偶性,使得计算量与特征的纬数无关。由KKT()条件,可知分类超平面由且仅由分类边界上的点(支持向量SV)决定,非支持向量不影响分类,一般几万的样本实际上可能只有几千个支持向量,从而形成了解的稀疏性。SVM本质上是一个二次规划优化问题,它将分类精度与分类超平面的泛化性组合起来,看成是约束条件下的优化问题。核的Mercer条件(核矩阵是正定的,即该矩阵的特征值非负),保证了该优化问题只有一个全局最值。

二、SVM实现

SVM的实现更关注的是在一定的存储空间的前提下、更快的训练以达到收敛。通常不是实际的收敛,而是采用启发式方法,在满足一定的容忍条件的前提下停止迭代。常用的算法是梯度上升(下降)算法,即每次更新参数时从梯度的方向来,以最快的增加对偶函数的值。由于内存的有限,实际情况中可能不能把所有的训练数据都加载进内存,因此可以从近似的方法:选择活动工作集(对对偶目标函数贡献最大的N个点或者违反KKT条件的N个点或者参数>0且<c的点),实际训练中可以采用随机更新的方法。

此外,还有一种更高效的算法,SMO(序贯最小优化算法),本质上也是梯度算法,不过为保持KKT条件,每次优化只同时更新两个点,二者之间的参数变化关系可以推导得出,且这两个点的选择也可以通过一些启发式方法获得,原则上还是选择对对偶目标函数贡献最大的点。这样迭代到满足终止条件后,学到的参数就是最终的解。

三、SVM工具包

 Libsvm(采用SMO算法实现,在Quality项目中使用过此工具,比较简单,核函数选择rbf,参数可采用交叉验证的方式得到,已实验过二类、多类、回归问题,未尝试聚类问题)

 Svmlight(据说速度快,我还没用过,但感觉是否因为终止条件的不同导致?)

四、SVM应用

1、文本分类

2、回归学习

文本聚类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值