基本思想:建立一个超平面,将两类样本进行分类,通过超平面最大化,将两类样本进行最优分类。
H为使两类样本分开的的分类线。
H1,H2为通过两类样本中离分类线最近样本点切与H线平行,称为决策线。
H1,H2之间距离为分类间隔。分类间隔最大的分类线是最优分类线。
假设一个超平面,不仅能将多维训练样本向量合理分开,同时还满足离超平面最近的向量与超平面之间距离最大,则超平面称为最优分类面,离最优分类面最近的向量称为支持向量。
1、SVM寻找区分两类的超平面(hyper plane), 使边际(margin)最大。
2、SVM算法特性
2.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting。
2.2 SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。
3.3 一个SVM如果训练得出的支持向量个数比较小,SVM训练出的模型比较容易被泛化。
3、线性不可分(linearly inseparable case)
2.1 数据集在空间中对应的向量不可被一个超平面区分开
2.2 两个步骤来解决:
1.利用一个非线性的映射把原数据集中的向量点转化到一个更高维度的空间中。
2.在这个高维度的空间中找一个线性的超平面来根据线性可分的情况处理。
2.3如何利用非线性映射把原始数据转化到高维中?
3、核方法(kernel trike)
用来选择合理的非线性转化把数据转到高纬度中,解决计算内积时算法复杂度非常高的问题。