SVM引入
SVM
是
SupportVectorMachine
的
简
称,它的中文名
为
支持向量机,属于一种有
监
督的机器
学
习
算法,可用于离散因
变
量的分
类
和
连续
因
变
量的
预测
。通常情况下,
该
算法相
对
于其他
单
一的分
类
算法(如
Logistic
回
归
、决策
树
、朴素
贝
叶斯、
KNN
等)会有更好的
预测
准确率,主要是
因
为
它可以将低
维线
性不可分的空
间转换为
高
维
的
线
性可分空
间
。由于
该
算法具有
较
高的
预
测
准确率,所以其
备
受企
业
界的
欢
迎,如利用
该
算法
实现
医
疗诊
断、
图
像
识别
、文本分
类
、市
场营销
等。
该
算法的思想就是利用某些支持向量所构成的
“
超平面
”
,将不同
类别
的
样
本点
进
行划
分。不管
样
本点是
线
性可分的、近似
线
性可分的
还
是非
线
性可分的,都可以利用
“
超平面
”
将
样
本点以
较
高的准确度切割开来。需要注意的是,如果
样
本点
为
非
线
性可分,就要借助于核函数
技
术
,
实现样
本在核空
间
下完成
线
性可分的操作。关
键
是
“
超平面
”
该
如何构造,
这
在本章的内
容中会有所介
绍
。
运用
SVM
模型
对
因
变
量
进
行分
类
或
预测时
具有几个
显
著的
优
点:例如,由于
SVM
模型最
终
所形成的分
类
器
仅
依
赖
于一些支持向量,
这
就
导
致模型具有很好的
鲁
棒性(增加或
删
除非支
持向量的
样
本点,并不会改
变
分
类
器的效果)以及避免
“
维
度灾
难
”
的
发
生(模型并不会随数据
维
度的提升而提高
计
算的复
杂
度);模型具有很好的泛化能力,一定程度上可以避免模型的
过
拟
合;也可以避免模型在运算
过
程中出
现
的局部最
优
。当然,
该
算法的缺点也是明
显
的,例如
模型不适合大
样
本的分
类
或
预测
,因
为
它会消耗大量的
计
算
资
源和
时间
;模型
对
缺失
样
本非常
敏感,
这
就需要建模前清洗好每一个
观测样
本;
虽
然可以通
过
核函数解决非
线
性可分
问题
,但
是模型
对
核函数的
选择
也同
样
很敏感;
SVM
为
黑盒模型(相比于回
归
或决策
树
等算法),
对计
算得到的
结
果无法解
释
。
支持向量的概念:
训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量,支持向量是使约束条件使wxi+b=+-1的点。
函数间隔
![](https://i-blog.csdnimg.cn/blog_migrate/ab9791c9d910ae327152863ffafb0ff8.png)
几何间隔:
将函数
间
隔做
单
位化
处
理后,得到的
γ
i
值
其
实
就是点
x
i
到分割面
w
'
x
+
b
=0
的距
离,所以
γ
i
被称
为
几何
间
隔。
svm原理
求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
1、对于线性可分数据时,通过硬间隔最大化,学习一个线性的分类器;
目标函数:
2、对于近似线性可分数据时,通过软间隔最大化,学习一个线性的分类器,通过加松弛因子;
3、对于线性不可分数据时,通过核技巧使软间隔最大化,学习一个非线性的分类器。
优缺点
优点:
- 由于SVM模型最终所形成的分类器仅依赖于一些支持向量,这就导致模型具有很好的鲁棒性(增加或删除非支持向量的样本点,并不会改变分类器的效果);
- 避免“维度灾难”的发生(模型并不会随数据维度的提升而提高计算的复杂度);
- 模型具有很好的泛化能力,一定程度上可以避免模型的过拟合;
- 也可以避免模型在运算过程中出现的局部最优。
缺点:
- 计算成本高,计算速度慢,内存消耗大,
- 模型过程及结果难以解释,
- 对缺失数据敏感