机器学习中矩阵向量分不清(手把手机器学习实战:)

算法原理

支持向量机是一种用来回归和分类的算法,一般用来进行分类的算法, 它的思想是通过寻找一个最优的超平面,然后将不同标签的样本数据进行分离开,如图所示

机器学习中矩阵向量分不清(手把手机器学习实战:)(1)

超平面的选择

通过寻找一个超平面,然后将数据集分成两类, 但是超平面可能会有许多个,哪一个是最好的呢? 如何去确定呢?

情景1: 在这种情况下,超平面B是最好的选择,因为B可以将数据集很好的分开

机器学习中矩阵向量分不清(手把手机器学习实战:)(2)

情景2:这三个超平面可以将数据集分开,但是超平面C是最好的,此时需要看一看数据点到超平面的最近距离达到最大,这样可以使得无论正样本还是负样本的到超平面的间隔会达到最大

机器学习中矩阵向量分不清(手把手机器学习实战:)(3)

情景3:在这种情况下,应该是选择超平面A还是超平面B呢? 直观的看,应该是选择B,因为它的间隔是最大的,但是这种情况下并没有正确的进行分类,如果选择超平面A的话,在训练集上是分类的很完美,但是在预测的数据集上效果不会很好,因为它的间隔很小,同时由于样本的噪声的存在,有些样本是异常点,即噪声点,对于新的样本很容易分类错误,实际上就是过拟合,所以应该在目标函数加一些惩罚项,然后让超平面既要达到间隔最大,又要使得允许一些样本点分类错误

机器学习中矩阵向量分不清(手把手机器学习实战:)(4)

情景4: 在这种情况,无法找到一个超平面将样本正确的分开,那么如何去做呢? 采用的方法是是"核技巧",将数据的维度进行扩大,

机器学习中矩阵向量分不清(手把手机器学习实战:)(5)

如在这里引入z=x2 y2, 当投影到x-z平面上后,可以发现是线性可分了, 如图所示:

机器学习中矩阵向量分不清(手把手机器学习实战:)(6)

数学表示:

在二维空间上,一条直线方程表示如下:

机器学习中矩阵向量分不清(手把手机器学习实战:)(7)

现在将x轴,y轴重新起个名字,称为x1, x2, 然后方程变为

机器学习中矩阵向量分不清(手把手机器学习实战:)(8)

然后移项得到:

机器学习中矩阵向量分不清(手把手机器学习实战:)(9)

然后进行向量化后得到:

机器学习中矩阵向量分不清(手把手机器学习实战:)(10)

进一步向量化后得到:

机器学习中矩阵向量分不清(手把手机器学习实战:)(11)

其中,向量w和x分别为:

机器学习中矩阵向量分不清(手把手机器学习实战:)(12)

在这里w1=a, w2=-1

当将二维空间推广到n维空间中去, 公式形式没有变化,

机器学习中矩阵向量分不清(手把手机器学习实战:)(13)

图1-1

其中w向量和x向量表示如下:

机器学习中矩阵向量分不清(手把手机器学习实战:)(14)

把图1-1的方程称为超平面方程

函数间隔与几何间隔

假设找到一个超平面,将区域分成了两部分,如图所示:

机器学习中矩阵向量分不清(手把手机器学习实战:)(15)

并且定义如下,

机器学习中矩阵向量分不清(手把手机器学习实战:)(16)

可以发现,如果能够正确分类,意味着

机器学习中矩阵向量分不清(手把手机器学习实战:)(17)

因为yi= 1或者-1,可以得到如下的关系:

机器学习中矩阵向量分不清(手把手机器学习实战:)(18)

所以可以称为yi(wxi b)为函数间隔

几何间隔的定义:

几何间隔就是一个点到超平面的距离

仍以二维直线举例,一个点到直线的距离是:

机器学习中矩阵向量分不清(手把手机器学习实战:)(19)

当将将直线方程扩展到多维,求得我们现在的超平面方程,对公式进行如下变形:

机器学习中矩阵向量分不清(手把手机器学习实战:)(20)

其中||w||称为范数,数学定义是:

机器学习中矩阵向量分不清(手把手机器学习实战:)(21)

那么:

机器学习中矩阵向量分不清(手把手机器学习实战:)(22)

对于函数间隔来说,如果将某点的函数间隔扩大k倍,那么几何间隔仍然保持不变,

通常为了表示方便, 通过扩大或缩小w,b的系数,使得

机器学习中矩阵向量分不清(手把手机器学习实战:)(23)

此时几何间隔变为了

机器学习中矩阵向量分不清(手把手机器学习实战:)(24)

如何去找到超平面呢? 我们的目标是让几何间隔最大,那么目标函数如何表示呢? 下节再说

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页