机器学习实战【7】(SMO算法实现)

本文详述了SMO算法的原理和实现,包括二元优化、解的修剪、b的更新和参数的启发式选择。SMO算法通过解决两个参数的子问题提高效率,对结果进行修剪,并更新b值。文章还讨论了参数选择策略及Python实现,揭示了书中实现可能存在的误差缓存问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客记录《机器学习实战》(MachineLearningInAction)的学习过程,包括算法介绍和python实现。

SMO算法

前两篇文章介绍了SVM的原理,经过一番推导,原始问题转化为:

minαi=1n12i,j=1nαiαjyiyjK(xi,xj)αis.t.,0αiC,i=1,...,ni=1naiyi=0

SMO算法就是用来解决这个问题,求解出这些 α 之后,超平面的参数就可以通过这些 α 计算出来。

二元优化

SMO算法的核心在于,它把原本n个参数的优化问题拆分为很多个小的子问题,每次只优化其中的两个参数而固定其它参数,两个参数的优化是很快的,从而使得最终算法的效率非常高。
假设在n个参数(α1,...,αn)中选取α1α1进行优化,其它参数全部视为常数,则原问题化简为:

minΨ(α1,α2)=12K11α21+12K22α22+K12y1y2α1α2(α1+α2)+y1v1α1+y2v2α2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值