Q:有没有办法判断数据是线性可分的还是不可分的?
A如果一个数据是线性可分的,即存在一个超平面,如果
LDA(线性判别分析) 这个算法比较老了,做法也没有也没有比其它分类器好在哪里,就没有细说
Q :+1 -1不理解?
Q:支撑向量是什么?
假设W可以由若干的样本“线性"组合得到的。
相当于样本是数据,加上一些不相同的系数,加权相加,就可以得到w.
Q: 为什么以最小最大距离为目标函数?
自己思考:增强模型的generialization能力?
Q:
对于线性可分SVM,样本点顶多在过度带的边上。过渡带里面是没有样本点的!
===============================================================================
如下图所示,
只是1,2,3的样本的阿尔法不等于0,其它的样本点的阿尔法都是0
一个点可以看到是一个向量,
我们用支撑向量的方式,得到一个machine,就是support vector machine.
所以支撑向是就是: 参数不为0的那些点
SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。
LR和SVM的联系与区别
@朝阳在望,联系:
1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)
2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。
区别: 1、LR是参数模型,SVM是非参数模型。
2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
3、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
5、logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。
来源:http://blog.csdn.net/timcompp/article/details/62237986
下面这个图,先考虑建立一个什么样的目录函数,作为我们要优化的准则;
先考虑hard-margin SVM(线性可分SVM)
然后考虑soft-margin SVM(可以略有错误,最大化的是软间隔)
但是分类介面是线性的
上面的两个都是线性SVM
如果加入了核函数,就可能使得原本线性不可分的数据在更高维度变成线性可分。
下图:
先掌握1,2,再加上3(kernel),就可以了。
实际上一般用的是3, 加上某个核函数,然后允许犯错误。
下面的图,如果在图中修改的位置上还有一个红色的小圈,那么它实际上落在了过渡带以内,
这样的话,过渡带的宽度/2 ? 称为 软间隔
这样的话就会有样本点落在过渡带里面了。
如果w*x +b > 0 位于法向的正方向;
如果 w*x+b <0 位于法向的反方向
使用核解决线性不可分:
下图,绿色的暗和绿色是y_hat> 0的部分; 区分的线是y=+1
红色的暗和红色是y_hat <0 的部分;区分的线是y=-1
怎么样才能提高模型的泛化能力呢?
SVM的思想,就是找一个“胖胖”的边界。
思考:如果用决策树呢?
下图,不同参数对SVM的分界面的影响,
随着C的增大,过渡带越来越窄,因为“犯错”的成本越来越高(过度带窄了,才可能使得样本进入过渡带的可能变小,也就是使得样本犯错的损失变小)
下面这两个图,C=1,一个是线性核,一个是高斯核。
gama越大,非线性越强烈。
如果gama变成无穷大,模型就退化成了?
再来对比下面的,
gama是一样的,但是C不一样。
C代表“犯错的代价”和“过度带的宽度”这两者的权衡。
C越大,过渡带越窄。
线性分类问题:
这些线哪一个是最好的?
点到直线的距离:
如果把标签定为y=+1, y=-1:
把下面这个看成是”线”本身的属性:
统一在一起:
SVM要做下面的事情: