机器学*(3):支持向量机(SVM)
1. 背景:
1.1 最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出
1.2 目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表
1.3 深度学*(2012)出现之前,SVM被认为机器学*中*十几年来最成功,表现最好的算法
2. 机器学*的一般框架:
训练集 => 提取特征向量 => 结合一定的算法(分类器:比如决策树,KNN)=>得到结果
总共可以有多少个可能的超平面?无数条
如何选取使边际(margin)最大的超平面 (Max Margin Hyperplane)?
超平面到一侧最*点的距离等于到另一侧最*点的距离,两侧的两个超平面平行
3. 线性可区分(linear separable) 和 线性不可区分 (linear inseparable)
4. 定义与公式建立
超平面可以定义为:WX+b
W: 权重 , n是特征值的个数
X: 训练实例
b: bias
5. 求解:
6. 实例:
7. SVM优点:
1.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting
1.2 SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。
1.3 一个SVM如果训练得出的支持向量个数比较小,SVM训练出的模型比较容易被泛化。
线性不可分的情况: