SVM:支持向量机SVM(Support Vector Machine)作为一种可训练的机器学习方法,依靠小样本学习后的模型参数进行导航星提取,可以得到分布均匀且恒星数量大为减少的导航星表
logistic:logistic回归(Logistic regression) 与多重线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不同,其他的基本都差不多,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalized linear model)
SVM与logistic都是线性分类器的一种,那么它们有什么区别和联系?线性分类器又到底是什么?
1. 线性分类器
SVM属于线性分类器的一种,什么是线性分类呢?
在一个二维空间里,我们可以用一个线性函数来将样本点分开,如果一个线性函数能将样本点全部分开,则称这些数据是线性可分的,否则称为线性不可分。这个线性函数,在一维空间里就是一个点,在二维空间里就是一条线,在三维空间里就是一个平面,它们统一被称为“超平面”。
如下图所示,在一个二维空间里,一条线很好的将圆圈和叉叉两类样本给分开了,这条线就是超平面:
如果我们用数学公式表示,这条线为:
没有反应过来的同学,好好静下来想想,是不是这样的?
为方便下面的说明,我们用f(x)来表示这个式子,即:
那么此时,有:
当某点带入f(x)使得f(x)>0时,则该点在直线上方,则说明属于圆圈;
当某点带入f(x)使得f(x)<0时,则该点在直线下方,则说明属于叉叉;
有一个问题大家应该想到了;当某点带入f(x)使得f(x)=0,即该点落在直线上,呀!难办了,哪一类都不是;
这种情况,别说处女座了,我大水瓶座的数说君也不能忍!怎么办?果断弃之,直接把超平面给换了!
这里其实牵扯到的是一个不适定问题,不要被名字给吓住了,其实很简单。还是区分叉叉和圆圈的例子,看下面这张图,你稍微挪动一下直线,又是一个超平面,它们都能把两类点给分开,超平面不唯一,这就是不适定问题。但我们要选择的,一定是能把两类点分的最开、分的最清楚的那个超平面,用这样的超平面去给未知类别的点进行分类,才最可靠,不然发现未知类别的点都围在超平面附近,或者像上图那样直接落在直线上,无法取舍,真是要把强迫症给逼疯的。
以上内容,就是线性分类器的朴素的思想,它家族的很多成员,包括曾经介绍过的logistic模型(在公众号“数说工作室”中搜索关键字“logit1”和“logit2”查看),它和SVM很像,现在大概说一下两者的区别,说完了也许你就知道SVM为什么叫“支持向量机”
① 寻找最优超平面的方法不同
形象点说,logistic模型找的那个超平面,是尽量让所有点都远离它,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些“支持向量”的样本——所以叫“支持向量机”。
② SVM可以处理非线性的情况
比logistic更强大的是,SVM还可以处理非线性的情况。
2. 数学表达
(1)超平面的数学表达
我们需要把上面乱七八糟的语言用数学表达式来表示,这样下面的介绍就直接用数学符号或者公式就可以说明了。
前面我们说了二维空间里超平面的数学表达:
三维空间相应的为:
推广到更高维空间,以便让我们的推导更有普遍性:
在任意n维空间里,分类函数
因此,管它到底多少维,我们用向量形式,就可以表示所有:
(2)判断标准的数学表达
之前,我们有这样的判断标准:
当某点带入f(x)使得f(x)>0时,则该点在直线上方,则说明属于圆圈;
当某点带入f(x)使得f(x)<0时,则该点在直线下方,则说明属于叉叉;
为了量化表达,我们用y这个字母来代表某点属于的类别,y就叫做结果标签,那么用y=1表示圆圈,用y=-1表示叉叉,也就是说,直线下面的点,其y的取值都为-1,直线上面的点,其y的取值都为1(在logistic模型中,我们会习惯于用0和1来表示两个类别,这里为什么是用-1和1呢?答案在下一集中),那么上面的标准就可以转化成数学语言 来源于数说工作室
给大家分享一个量化学习的微信,
上面有量化学习资料和优秀实盘策略、经常会碰到的策略操作问题等,
一起学习