SVM(Support Vector Machine即支持向量机)是一种有监督的学习方法,主要通过小样本数据的学习,其后进行分类和预测。类似的根据样本进行学习的方法还有决策树归纳算法等。在解决小样本、非线性及高维模式识别中SVM表现出许多特有优势
1、SVM核心思想
即构建一个超平面,使得该超平面能将不同类别的样本间隔开(单纯只是满足将不同类别样本隔开的超平面可能有很多),同时为了使模型具备更好的泛化能力。此处的超平面需要满足,使两侧距离平面最近的两类样本之间的距离最大且两类样本距离超平面的距离相等,以实现对线性可分样本的最优分类。
换个角度,我们可以设想存在一条足够宽的街道,使得不同类别的样本分别位于街道两侧,而我们就是要将这条街道中间的线作为分界线。
在通过计算得到超平面的时候,需借助于非线性约束条件下的最优化、KKT条件、拉格朗日对偶、最大间隔、最优下界、核函数等进行求解
软间隔与硬间隔:
硬间隔,严格区分不同样本,使其分别位于间隔街道(以最优分割超平面的中心的分割街道)的两侧。这会导致两个问题:其一,即使将分类问题非线性的投射到高维空间也存在线性不可分的情况;其二,模型对于异常值非常敏感
软间隔,即在保持街道宽阔和限制间隔违例(即位于街道之上,甚至在错误的一边的实例)之间找到良好的平衡,从而使得模型更加灵活。
在scikit-Learn的SVM类中,可以通过超参数C来控制该平衡。C越小,则街道越宽,同时间隔违例也越多
2、SVM理论基础(Cover定理)
将复杂的模式分类问题非线性地投射到高维空间,将比投射到低维空间更可能是线性可分的。故SVM利用核函数(sklearn中利用kernel参数控制)将低维空间映射至高维空间,从而实现线性可分。但是在映射过程中是没有增加计算量
3、支持向量
支持向量机中的支持向量(Support Vector)是指训练样本集中的某些训练点(及样本,通过向量来表示),这些点最靠近分类决策面,也是最难分类的数据点。SVM中最优分类标准就是这些点距离分类超平面的距离达到最大值,且这些点到超平面的距离相等;“机”(Machine)是机器学习领域对一些算法的统称,常把算法看做一个机器,或者学习函数。支持向量在SVM分类决策中起着决定性的作用
4、SVM优缺点
优点:
1、不需要很多样本,不需要有很多样本并不意味着训练样本的绝对量很少,而是说相对于其他训练分类算法比起来,同样的问题复杂度下,SVM需求的样本相对是较少的。并且由于SVM引入了核函数,所以对于高维的样本,SVM也能轻松应对。【小样本、高维】
2、结构风险最小。这种风险是指分类器对问题真实模型的逼近与问题真实解之间的累积误差。
3、非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也叫惩罚变量)和核函数技术来实现,这一部分也正是SVM的精髓所在。
4