频道栏目
首页 > 网络 > 云计算 > 正文

机器学习之SVM简介

2017-04-27 09:15:49         来源:将登太行雪满山  
收藏   我要投稿

综述

机器学习之SVM简介,在深度学习(2012)出现之前,SVM是ml算法中最优秀的算法。
支持向量机,本质是个分类器。核技巧+间隔最大
当间隔最大的时候,他的泛化能力是最强的,鲁棒性最高。

基于最大间隔分割数据。分割的超平面有无数个,找的是最大化的 寻找一个能把样本分割开的超平面(分割超平面)Max Margin Hyperplane 求解凸二次规划的最优化算法。 支持向量:超平面上的那些点(样本)
当样本有多个属性,并且属性之间有影响的时候,svm比较适合

支持向量:和超平面平行的保持一定的函数距离的这两个超平面对应的向量,我们定义为支持向量
支持向量机:寻找支持向量的算法,并利用支持向量来寻找分界线的算法

非线性支持向量机 线性支持向量机

算法流程

算法的主要过程就是要求解超平面,超平面具有如下性质:

把两类数据分隔开 距离两个分类之间的距离最大

就是求解条件极值的方程,一个带有约束条件的最小极值方程。高数里面可以用拉格朗日方法求解
这个方程也就是SVM的基本型

训练集的最大间隔超平面是存在且唯一的。

当样本数据不是线性可分的时候,如何处理?
这里引入核函数的概念

核函数

当样本不是线性可分的时候,需要用到核函数,核函数的目的是将所有的样本转换成可划分的。通过对样本数据的转换,构造出一条直线划分原来的样本。

核函数将样本数据变换到更高维度,使得他线性可分。 在数学上已经证明了,经过有限次的核函数转换,一定可以处理成线性可分的情况。 核函数本质上就是一个映射

最关键的就是找到合适的映射。如何找到?没有系统的方法,需要考量数据格式,业务需要等,经验积累。一般来说,径向基函数/高斯核(rbf)效果大部分情况下还行。核函数也可以自己定义。如果需要具体操作,还需要另寻他法。

核函数是SVM的精华,如何选择合理的核函数,对于SVM的性能有着至关重要的影响。

优化

核函数的选择对于性能的提升有着极为重要的作用。

评价

SVM可以用于分类和回归 SVM的复杂度是由支持向量个数的多少决定的,不是由样本个数的多少。寻来的结果完全依赖于支持向量而非所有样本。 svm是前一个阶段ml的主流,但是由于核函数的选择,一直是个未决问题。经常使用的多核学习本质上是借助了集成学习机制。

进阶

libsvm
核函数的选择
凸优化问题

上一篇:SparkRDD操作:combineByKey函数详解
下一篇:scala解析json
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站