算法面试基础:SVM

本文详细介绍了支持向量机(SVM)的原理,包括最优超平面、软间隔、核函数等概念,以及如何通过拉格朗日乘子法和SMO算法解决优化问题。SVM不仅可以用于二分类,还可以通过多种策略解决多分类问题。此外,文章还探讨了在数据量大时为何常选择LR而非核SVM,并对比了线性SVM与逻辑回归(LR)的异同。同时,SVM在排序问题中也有应用,如RankSVM将排序转化为pairwise分类问题。
摘要由CSDN通过智能技术生成

SVM

SVM是一个二分类的方法,通过最大化超平面距离正负样本之间的距离实现最大化间隔来进行分类。由于是存在约束条件,不好求解,所以借助拉格朗日法转化为无约束问题,求解其对偶问题,再使用SMO算法求解析解。

  • 从分类平面,到求两类间的最大间隔,到转化为求间隔分之一等优化问题:loss=min(1/2·||W||·||W||) subject to:y(wx+b)>=1,其中||·||为2范数
  • 然后就是优化问题的解决办法,首先是用拉格拉日乘子把约束优化转化为无约束优化,对各个变量求导令其为零,得到的式子带入拉格朗日式子从而转化为对偶问题
  • 最后再利用SMO(序列最小优化)来解决这个对偶问题

 

距离最靠近超平面的正负样本距离最大的超平面。

 

在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量。换句话说,就是超平面附近决定超平面位置的那些参与计算锁定平面位置的点

可以,对于一个N分类问题,可以训练N个分类器,1 vs rest

也可以或者 one vs one 比如3个类别 a,b,c a vs b,a vs c b vs c n(n-1)/2个

clf = svm.SVC(gamma='scale', decision_function_shape='ovo')

另一种是lin_clf = svm.LinearSVC()

multi_class='ovr'

 

 

 

(参考:https://zhuanlan.zhihu.com/p/76609851?from_voters_page=true)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值