机器学习:支持向量机SVM
Posted 残留的存在主义
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习:支持向量机SVM相关的知识,希望对你有一定的参考价值。
支持向量机SVM(一)
编程语言:Python
机器环境:Windows
参考书籍:《机器学习实战》
参考学习视频:
吴恩达机器学习视频:
https://study.163.com/course/courseMain.htm?courseId=1004570029
注:一些公式推导,可以参照周志华的书籍《机器学习》。
支持向量机
支持向量机(Support Vector Machines),SVM广泛地应用于工业界、学术界,相比于逻辑回归、神经网络,对于非线性问题,能提供更清晰、更强大的方式。
SVM是一个由分类超平面定义的判别分类器。
有人认为SVM是最好的现成的分类器,“现成”指的是分类器不加修改即可直接使用,意味着直接应用SVM可以取得较低的错误率,对训练集之外的数据点做出很好的分类决策。
优缺点
优点:泛化错误率低,计算开销不大,结果易解释。
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
适用数据范围:数值型和标称型(离散型)
逻辑回归的代价函数
在中,我们已经讨论过逻辑回归分类中的代价函数,
SVM的代价函数
对逻辑回归的代价函数进行些许修改,即是SVM的代价函数,我们进行最小化
(推导过程可以参照吴恩达教学视频)
注意与逻辑回归不同,SVM是以1与-1为分割,而不是sigmond中的0,这相当于构建了一个
安全间距因子。
(分隔)超平面
超平面是比所研究的环境空间低一个维度的子空间。如果空间是3维的,那么它的超平面就是二维平面。如果空间是二维的,则其超平面是一维的直线。
大间隔
间隔:一个点到分割面的距离,称为点相对于分割面的距离。
数据集中所有的点到分割面的最小间隔的2倍,称为分类器或数据集的间隔(margin)。
SVM分类器是要找最大的数据集间隔,故SVM又被称为最大间隔分类器(Large Margin Classifier)
支持向量:离分割超平面最近的那些点。
SVM的决策边界
如上图,可以用粉色、绿色和黑色的线来分隔样本,但是黑色的线使得两侧样本点尽可能地分隔开来(离两侧最近的样本点的距离最大,即间隔部分的宽度最大),在SVM中,我们需要找出最大间隔,则黑色的直线为我们寻找的决策边界。这条决策边界使得两边的样本一个为正类,一个为负类。
向量内积(点乘)
点乘的结果是一个标量(数量而不是向量) ,可正可负。
可参照https://www.cnblogs.com/gxcdream/p/7597865.html
几何意义
a向量点乘b向量(即a与b的内积)的几何意义表示:
b向量在a向量方向上的投影
如上图所示,u向量点乘v向量,即v在u上的投影的长度(也叫范数),这个长度可正可负,于是可以将样本分为正负两类。SVM为何最终会找到大间隔分类器,因为它试图最大化每个样本的范数,即训练样本到决策边界的距离,这个距离即样本点在法向量的投影,这个法向量,即我们所要需要的参数向量。
一般流程
(1)收集数据:可以使用任何方法。
(2)准备数据:需要数值型数据。
(3)分析数据:有助于可视化分隔超平面
(4)训练算法:SVM大部分时间都源自于训练,该过程主要实现两个参数的调优。
(5)测试算法:十分简单的计算过程就可以实现。
(6)使用算法:几乎所有分类问题都可以使用SVM,SVM本身是 一个二类分类器,对多类问题应用SVM需要对代码做一些修改。
下期 机器学习(九):支持向量机SVM(二)
机器学习系列:
家明将与大家一起学习机器学习,借助于网上的教程与书籍指导,家明总结,与大家一起进步,共同应对AI时代。
以上是关于机器学习:支持向量机SVM的主要内容,如果未能解决你的问题,请参考以下文章