机器学习中矩阵向量分不清(手把手机器学习实战:)
支持向量机是一种用来回归和分类的算法,一般用来进行分类的算法, 它的思想是通过寻找一个最优的超平面,然后将不同标签的样本数据进行分离开,如图所示
超平面的选择
通过寻找一个超平面,然后将数据集分成两类, 但是超平面可能会有许多个,哪一个是最好的呢? 如何去确定呢?
情景1: 在这种情况下,超平面B是最好的选择,因为B可以将数据集很好的分开
情景2:这三个超平面可以将数据集分开,但是超平面C是最好的,此时需要看一看数据点到超平面的最近距离达到最大,这样可以使得无论正样本还是负样本的到超平面的间隔会达到最大
情景3:在这种情况下,应该是选择超平面A还是超平面B呢? 直观的看,应该是选择B,因为它的间隔是最大的,但是这种情况下并没有正确的进行分类,如果选择超平面A的话,在训练集上是分类的很完美,但是在预测的数据集上效果不会很好,因为它的间隔很小,同时由于样本的噪声的存在,有些样本是异常点,即噪声点,对于新的样本很容易分类错误,实际上就是过拟合,所以应该在目标函数加一些惩罚项,然后让超平面既要达到间隔最大,又要使得允许一些样本点分类错误
情景4: 在这种情况,无法找到一个超平面将样本正确的分开,那么如何去做呢? 采用的方法是是"核技巧",将数据的维度进行扩大,
如在这里引入z=x2 y2, 当投影到x-z平面上后,可以发现是线性可分了, 如图所示:
数学表示:
在二维空间上,一条直线方程表示如下:
现在将x轴,y轴重新起个名字,称为x1, x2, 然后方程变为
然后移项得到:
然后进行向量化后得到:
进一步向量化后得到:
其中,向量w和x分别为:
在这里w1=a, w2=-1
当将二维空间推广到n维空间中去, 公式形式没有变化,
图1-1
其中w向量和x向量表示如下:
把图1-1的方程称为超平面方程
函数间隔与几何间隔
假设找到一个超平面,将区域分成了两部分,如图所示:
并且定义如下,
可以发现,如果能够正确分类,意味着
因为yi= 1或者-1,可以得到如下的关系:
所以可以称为yi(wxi b)为函数间隔
几何间隔的定义:
几何间隔就是一个点到超平面的距离
仍以二维直线举例,一个点到直线的距离是:
当将将直线方程扩展到多维,求得我们现在的超平面方程,对公式进行如下变形:
其中||w||称为范数,数学定义是:
那么:
对于函数间隔来说,如果将某点的函数间隔扩大k倍,那么几何间隔仍然保持不变,
通常为了表示方便, 通过扩大或缩小w,b的系数,使得
此时几何间隔变为了
如何去找到超平面呢? 我们的目标是让几何间隔最大,那么目标函数如何表示呢? 下节再说
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com