关于向量机的理解。
-------------------Yc
初始支持向量机的出现用来解决线性分类问题,之后加入核方法可解决非线性问题。其优点为适应‘小样本数据、高特征维度‘的数据集,甚至是特征维度数高于训练样本数的情况。
1.最优超平面
通过学习数据,形成一个超平面达到二值分类的目的。(超平面在一维空间是个点;在二维空间是条线;在三维空间是个面)即通过超平面将已有数据分成不同的部分。
因为很多超平面可以将已有数据正确分类,如下图中的红色箭头,为了使分类器在新的测试数据中有良好的表现,使svm分类器平分数据中的空白区域(蓝色线条),以便更好地对新数据分类。
下图中,实线为SVM选择的最优超平面,虚线是两条最靠近空白区域的平面。上述平面选择依据为:
1.找到最大距离的虚线;
2.最优超平面到最近点有相同距离,即a=b.
2.软间隔
很多时候训练集会有噪声数据,此时采用最优超平面策略会产生过度拟合问题,即因为噪声数据而产生的最优超平面,对测试数据集分类效果不好,如下图:
为此引入’软间隔‘来解决此类问题,即允许存在错误数据,在两条虚线间隔尽可能大的情况下尽可能正确地分类数据。
3.线性不可分问题
下图(左)数据线性不可分,即找不到一个良好的超平面分割两类数据,因此将数据升维处理。
升维:通过某些算法将样本点投射到更高维度以此分开混合在一起的样本点。二维到三维的升维示例如下:
4.核函数(sklearn库中可使用的)
1.linear:线性核函数,运算速度快,效果好,不能处理线性不可分的数据。
2.poly:多项式核函数,将数据从低维空间映射到高维空间,但参数比较多,计算量大。
3.rbf:高斯核函数(默认),高斯核函数同样可以将样本映射到高维空间,但相比于多项式核函数来说所需的参数比较少,通常性能不错。
4.sigmoid:sigmoid 核函数,应用效果不太好。
---------------------------------------------------------------------------------------------------------------------------------代码实现见下次内容。