在支持向量机系列的前两篇中,介绍了一下完全线性可分向量机的构建过程,本篇将在此基础上介绍一下不完全线性可分的情况下实现支持向量机软间隔最大化过程。
1.线性分类时的两种情况
情况一:
考虑下面这张图中的情况,这些数据点是完全线性可分的,蓝色点与绿色点两类,分割线为紫色实直线
如果按完全线性可分的情况考虑,也可以实现,但是这样得到的分类间隔(紫色虚线间距)比较小,换句话说就是分类准确率不够高,模型泛化能力不够。现在考虑这样一种做法,我们在建模时先不考虑其中一个绿色类点(带叉号的点),然后对剩余的、完全线性可分的点创建最优分类超平面,这样就得到红色实线,而此时的分类间隔(红色虚线间距)就比之前大得多,我们也有理由相信此时得到的SVM泛化能力更好。
情况二:
考虑下图中的这种情况,此时数据点不能完全线性可分
如果此时先不考虑带叉号的两个点,那么剩下的数据就完全线性可分了,我们可以找出红色实线那样的分类间隔。
2.软间隔最大化
对第1节中的两种情况,只要找出了影响最优分类超平面构建、“捣乱的数据点”(带叉号的点),就可以解决我们的问题,所以我们要考虑将哪些点视为“捣乱的数据点”,在完全线性可分的情况下,所有的数据点均满足
而在存在“捣乱数据点”的情况下,并不能保证所有的数据点满足上述等式,为此为每个数据点各自引入一个松弛变量 ,
,使其满足
很明显,如果足够大,那么所有的数据点均满足上述等式条件了,所以此时需要考虑松弛变量的影响、调整优化目标函数
式中为惩罚参数,用于权衡 “ 最大化分类间隔距离 ” 和 “ 分类误差 ” ,一般在构建模型前确定,
越大,那么最终确定的分类间隔距离越小;
越小,那么最终确定的分类间隔距离越大。这样最终的优化问题表述如下