支持向量机
1 概述
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。以逻辑回归为起点得到支持向量机。
2 代价函数
代价函数的主体由log函数变成了右图所示的分段函数,正因为这样的处理才使得支持向量机成为了大间距分类器。
相较于逻辑回归的代价函数,支持向量机的代价函数不仅在假设函数上发生了变化,其中由于最终的目的都是求收敛的代价函数,前面的常数项m分之一其实并不影响,因此在支持向量机的代价函数中去掉了这个项,而λ与C其实都是代表着前后两项的权重关系,其实质并没有变化。
3 大边界
根据上述代价函数的改变我们知道,当y=1的时候,我们希望?^? x>1当y=0的时候,我们希望?^? ?<−1,这就相当于在其中嵌入了一个安全因子。由于支持向量机的特性,我们更能得到像右图所示的黑线这一更加稳健的决策边界。
4 核函数
我对于核函数的理解是将其看作是一种映射,从原有的可收集的特征值转换成一组新的特征值。给定一个训练样本x,我们利用x的各个特征与我们预先选定的地标?^((1) ) ?^((?) ) ?^((?) )的近似程度来选取新的特征?_1 ?_2 ?_3。
5实现
在实际实时现的时候,在sklearn库中有专门的方法可以使用,查看SVC的相关介绍(np.info(svm.SVC))。
kernel是指的是所用到的核函数,SVM模型有两个非常重要的参数C与gamma。其中 C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差。gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。
6 优缺点
优点:
1、使用核函数可以向高维空间进行映射(核函数优势)
2、使用核函数可以解决非线性的分类
3、分类思想很简单,就是将样本与决策面的间隔最大化(代价函数的转换得到的优势)
4、分类效果较好
缺点:
1、对大规模数据训练比较困难(算法相对复杂)
2、无法直接支持多分类,但是可以使用间接的方法来做(和逻辑回归一样在进行多分类问题时,也只能使用one vs all 的方 法)