小象学院-SVM

 

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要做下面的事情:

 

 

 

 

 

 

 

既然已经假定了,这些数据都是线性可分的,那么y. (wx+b) 就是大于0的,然后只是可以调整w和b的系数(等比例绽放),使得y.(wx+b) 是大于等于1的,即y.(wx+b)的最小值是1

 

这样的话,

 

这样,我们终于得到了一个好看的形式:

 

 

原始问题和对偶问题:

 

 

停一下,思考一下为什么要推导公式?

推荐公式本身不是目的,不是为了推公式而推公式,而是在推导公式中加强对模型的理解;

边推公式边考虑公式对理解模型的意义;

 

考虑下图,

考虑

 

下面开始介绍线性SVM:

 

如果在一起程度放弃某一个样本,即这个样本在一起程度上给一个“松驰”,使得这个样本 的"y"并不一定是大于等于1的。

这样的话,就可以使得“过渡带”变宽,从而使得模型有更好的泛化能力。

 

“为了使得大部分样本能够分对,从而牺牲的一小部分样本”

 

 

 

     

 

下面的横坐标d是样本到分割超平面的距离

纵坐标是损失

 

 

这个图是SVM的损失函数:

 

下面是SVM的优化目标:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GS-SVM(Grid Search SVM),GA-SVM(Genetic Algorithm SVM),以及PSO-SVM(Particle Swarm Optimization SVM)都是在支持向量机(SVM)的基础上,结合其他优化方法或搜索策略进行改进的模型。它们的主要区别在于: 1. **GS-SVM(Grid Search SVM)**: 这种方法采用网格搜索的方式,通过遍历一系列预定义的参数组合,找到最优的超参数,如正则化参数C和核函数的参数。这种方法较为简单但计算成本较高,特别是当参数空间较大时。 2. **GA-SVM(Genetic Algorithm SVM)**: GA(遗传算法)是模拟生物进化过程的优化算法。在这个版本中,SVM参数被视为“个体”,通过交叉、变异和选择等操作进行迭代,目标是寻找到全局最优解。GA-SVM具有更强的全局优化能力,但可能会收敛速度较慢。 3. **PSO-SVM(Particle Swarm Optimization SVM)**: PSO(粒子群优化)算法是一个群体智能优化方法,每个粒子代表一个解决方案,并通过个体间的交流和集体学习来找到最优解。在PSO-SVM中,粒子的位置和速度对应于SVM参数,通过迭代优化这些参数来提升模型性能。PSO通常能快速收敛,但局部最优的风险也存在。 总结来说,这些变体的主要区别在于: - GS-SVM依赖手动设置,计算成本高; - GA-SVM使用进化策略,可能找到全局最优但搜索过程复杂; - PSO-SVM利用群体智能,速度快但可能存在局部最优。 相关问题: 1. 遗传算法和粒子群优化各自在优化过程中如何处理参数? 2. 在实际应用中,哪种方法更适用于资源有限的情况? 3. 有没有例子说明哪种搜索策略在特定类型的数据集上表现更好?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值