支持向量机SVM之-SMO算法

Andrew Ng机器学习笔记+Weka相关算法实现(六)SMO/LibSVM/SVM参数 SMO算法,坐标上升法,LibSVM,Weka中的SMO和MultiClassClassifier分类器的使用,SVM参数含义,SVM参数寻优技巧,SVM使用注意事项 阅读详情
序列最小最优化算法

序列最小最优化算法(sequential minimal optimization,简称SMO)是由Platt在1998年提出,用于解决多变量的凸优化问题。当变量个数很多的时候,一般的最优化算法通常无法有效求解最优解。此时,SMO算法的作用就会体现的淋漓尽致。针对多变量的最优解问题,SMO算法通过从变量集中选取两个变量,剩余的变量视为常量来计算局部最优解,然后再以递进的方式求出全局最优解。

SMO算法需要解决的最优化问题:min⁡α12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi\min_{\alpha} \quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_iαmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​s.t.∑i=1Nαiyi=0s.t. \qquad \sum_{i=1}^N\alpha_iy_i=0s.t.i=1∑N​αi​yi​=0 0≤αi≤C,i=1,2,...,N0 \leq \alpha_i \leq C,i=1,2,...,N0≤αi​≤C,i=1,2,...,N其中,目标函数的变量为(α1,α2,...,αN)(\alpha_1,\alpha_2,...,\alpha_N)(α1​,α2​,...,αN​),每一个实例(xi,yi)(x_i,y_i)(xi​,yi​)对应一个αi\alpha_iαi​。

SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因此KKT条件是该最优化问题的充分必要条件。SMO算法的目标是求解满足KKT条件的(α1,α2,...,αN)(\alpha_1,\alpha_2,...,\alpha_N)(α1​,α2​,...,αN​)。方法是选择两个变量,固定其他变量,针对这两个变量构建一个二次规划的子问题。这个二次规划子问题关于这两个变量的解更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。二次规划子问题有两个变量,一个是主动变量,其为违反KKT条件最严重的那一个,另一个被动变量,由主动变量依据约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。

对子问题进行求最优解时,假设α1,α2\alpha_1,\alpha_2α1​,α2​为两个变量,固定α3,α4,...,αN\alpha_3,\alpha_4,...,\alpha_Nα3​,α4​,...,αN​,其满足的约束条件为:α1y1+α2y2=−∑i=3Nαiyi=ζ\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zetaα1​y1​+α2​y2​=−i=3∑N​αi​yi​=ζ当更新其中一个变量α2\alpha_2α2​时,相应的α1\alpha_1α1​也会自动更新,进而求出子问题的最优解。

两个变量二次规划

假设α1,α2\alpha_1,\alpha_2α1​,α2​为两个变量,固定α3,α4,...,αN\alpha_3,\alpha_4,...,\alpha_Nα3​,α4​,...,αN​,那么SMO的最优化问题的子问题表达为:min⁡α1,α2W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1∑i=3NyiαiKi1+y2α2∑i=3NyiαiKi2\min_{\alpha_1,\alpha_2} \quad W(\alpha_1,\alpha_2)=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\alpha_1\sum_{i=3}^Ny_i\alpha_iK_{i1}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2}α1​,α2​min​W(α1​,α2​)=21​K11​α12​+21​K22​α22​+y1​y2​K12​α1​α2​−(α1​+α2​)+y1​α1​i=3∑N​yi​αi​Ki1​+y2​α2​i=3∑N​yi​αi​Ki2​s.t.α1y1+α2y2=−∑i=3Nαiyi=ζs.t. \quad \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zetas.t.α1​y1​+α2​y2​=−i=3∑N​αi​yi​=ζ0≤αi≤C,i=1,20 \leq \alpha_i\leq C,i=1,20≤αi​≤C,i=1,2其中,Kij=K(xi,xj),i,j=1,2,...,NK_{ij}=K(x_i,x_j),i,j=1,2,...,NKij​=K(xi​,xj​),i,j=1,2,...,N,ζ\zetaζ为常数。

为了解决两个变量的最优化问题,首先分析约束条件,找出变量满足的取值范围,并在此范围内求解最优解。

依据变量的上述等式约束和不等式约束,α1,α2\alpha_1,\alpha_2α1​,α2​都在[0,C][0,C][0,C]范围内,并且α1,α2\alpha_1,\alpha_2α1​,α2​满足的直线平行于盒子范围的对角线。如果y1≠y2y_1=\not y_2y1​≠​y2​时,则L=max(0,α2old−α1old),H=min(C,C+α2old−α1old)L=max(0,\alpha_2^{old}-\alpha_1^{old}),H=min(C,C+\alpha_2^{old}-\alpha_1^{old})L=max(0,α2old​−α1old​),H=min(C,C+α2old​−α1old​);如果y1=y2y_1= y_2y1​=y2​时,则L=max(0,α2old+α1old−C),H=min(C,α2old+α1old)L=max(0,\alpha_2^{old}+\alpha_1^{old}-C),H=min(C,\alpha_2^{old}+\alpha_1^{old})L=max(0,α2old​+α1old​−C),H=min(C,α2old​+α1old​)。计算的新解α1new,α2new\alpha_1^{new},\alpha_2^{new}α1new​,α2new​必须满足[L,H][L,H][L,H]这一范围,即L≤α2new≤HL\leq \alpha_2^{new}\leq HL≤α2new​≤H,接下来两个变量的最优化问题实质上是单变量的最优化问题,因为上述的等式约束,不妨考虑为变量α2\alpha_2α2​的最优化问题。

首先求沿着约束方向不考虑取值范围时的α2\alpha_2α2​的最优解α2new,unc\alpha_2^{new,unc}α2new,unc​;然后再求剪辑后α2\alpha_2α2​的解α2new\alpha_2^{new}α2new​。在此之前,先计算每个实例xix_ixi​的误差g(x)=∑i=1NαiyiK(xi,x)+bg(x)=\sum_{i=1}^N\alpha_iy_iK(x_i,x)+bg(x)=i=1∑N​αi​yi​K(xi​,x)+bEi=g(xi)−yi=(∑i=1NαiyiK(xi,x)+b)−yi,i=1,2E_i=g(x_i)-y_i=(\sum_{i=1}^N\alpha_iy_iK(x_i,x)+b)-y_i,i=1,2Ei​=g(xi​)−yi​=(i=1∑N​αi​yi​K(xi​,x)+b)−yi​,i=1,2上式中,g(xi)g(x_i)g(xi​)为实例xix_ixi​的预测值,EiE_iEi​为实例xix_ixi​的误差。

最优化问题沿着约束方向不考虑取值范围的解为:α2new,unc=α2old+y2(E1−E2)η\alpha_2^{new,unc}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}α2new,unc​=α2old​+ηy2​(E1​−E2​)​那么,这个公式是怎么推导出来的呢?接下来就是推导公式的详细步骤:vi=∑j=3NαjyjK(xi,xj)=g(xi)−∑j=12αjyjK(xi,xj)−b,i=1,2v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j)=g(x_i)-\sum_{j=1}^2\alpha_jy_jK(x_i,x_j)-b,i=1,2vi​=j=3∑N​αj​yj​K(xi​,xj​)=g(xi​)−j=1∑2​αj​yj​K(xi​,xj​)−b,i=1,2目标函数可写成W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1v1+y2α2v2W(\alpha_1,\alpha_2)=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\alpha_1v_1+y_2\alpha_2v_2W(α1​,α2​)=21​K11​α12​+21​K22​α22​+y1​y2​K12​α1​α2​−(α1​+α2​)+y1​α1​v1​+y2​α2​v2​由α1y1=ζ−α2y2\alpha_1y_1=\zeta-\alpha_2y_2α1​y1​=ζ−α2​y2​及yi2=1y_i^2=1yi2​=1,可将α1\alpha_1α1​表示为α1=(ζ−α2y2)y1\alpha_1=(\zeta-\alpha_2y_2)y_1α1​=(ζ−α2​y2​)y1​代入到上式中,得到只要一个变量α2\alpha_2α2​的目标函数W(α2)=12K11(ζ−α2y2)2+12K22α22+y2K12(ζ−α2y2)α2−(ζ−α2y2)y1−α2+v1(ζ−α2y2)+y2v2α2W(\alpha_2)=\frac{1}{2}K_{11}(\zeta-\alpha_2y_2)^2+\frac{1}{2}K_{22}\alpha_2^2+y_2K_{12}(\zeta-\alpha_2y_2)\alpha_2-(\zeta-\alpha_2y_2)y_1-\alpha_2+v_1(\zeta-\alpha_2y_2)+y_2v_2\alpha_2W(α2​)=21​K11​(ζ−α2​y2​)2+21​K22​α22​+y2​K12​(ζ−α2​y2​)α2​−(ζ−α2​y2​)y1​−α2​+v1​(ζ−α2​y2​)+y2​v2​α2​对α2\alpha_2α2​求导数∂W∂α2=K11α2+K22α2−2K12α2−K11ζy2+K12ζy2+y1y2−1−v1y2+y2v2\frac{\partial W}{\partial \alpha_2}=K_{11}\alpha_2+K_{22}\alpha_2-2K_{12}\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+y_2v_2∂α2​∂W​=K11​α2​+K22​α2​−2K12​α2​−K11​ζy2​+K12​ζy2​+y1​y2​−1−v1​y2​+y2​v2​令其为0,即(K11+K22−2K12)α2=y2(y2−y1+ζK11−ζK12+v1−v2)=y2[y2−y1+ζK11−ζK12+(g(xi)−∑j=12yjαjK1j−b)−(g(x2−∑j=12yjαjK2j−b)](K_{11}+K_{22}-2K_{12})\alpha_2=y_2(y_2-y_1+\zeta K_{11}-\zeta K_{12}+v_1-v_2)\\ =y_2\left[y_2-y_1+\zeta K_{11} - \zeta K_{12} +(g(x_i)-\sum_{j=1}^2y_j\alpha_jK_{1j}-b)-(g(x_2-\sum_{j=1}^2y_j\alpha_jK_{2j}-b)\right](K11​+K22​−2K12​)α2​=y2​(y2​−y1​+ζK11​−ζK12​+v1​−v2​)=y2​[y2​−y1​+ζK11​−ζK12​+(g(xi​)−j=1∑2​yj​αj​K1j​−b)−(g(x2​−j=1∑2​yj​αj​K2j​−b)]将ζ=α1oldy1+α2oldy2\zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2ζ=α1old​y1​+α2old​y2​代入,得到(K11+K22−2K12)α2new,unc=y2((K11+K22−2K12)α2oldy2+y2−y1+g(x1)−g(x2))=(K11+K22−2K12)α2old+y2(E1−E2)\begin{aligned}(K_{11}+K_{22}-2K_{12})\alpha_2^{new,unc} &= y_2((K_{11}+K_{22}-2K_{12})\alpha_2^{old}y_2+y_2-y_1+g(x_1)-g(x_2)) \\ &=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2(E_1-E_2)\end{aligned}(K11​+K22​−2K12​)α2new,unc​​=y2​((K11​+K22​−2K12​)α2old​y2​+y2​−y1​+g(x1​)−g(x2​))=(K11​+K22​−2K12​)α2old​+y2​(E1​−E2​)​令η=K11+K22−2K12\eta=K_{11}+K_{22}-2K_{12}η=K11​+K22​−2K12​代入,得到α2new,unc=α2old+y2(E1−E2)η\alpha_2^{new,unc}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}α2new,unc​=α2old​+ηy2​(E1​−E2​)​

然后,经过范围的约束得到的新解为
α2new={H,α2new,unc&gt;Hα2new,unc,L≤α2new,unc≤HL,α2new,unc&lt;L\alpha_2^{new} = \begin{cases} H \qquad, \alpha_2^{new,unc}&gt;H \\ \alpha_2^{new,unc}, L \leq \alpha_2^{new,unc} \leq H \\ L \qquad, \alpha_2^{new,unc} &lt; L \end{cases}α2new​=⎩⎪⎨⎪⎧​H,α2new,unc​>Hα2new,unc​,L≤α2new,unc​≤HL,α2new,unc​<L​
由α2new\alpha_2^{new}α2new​计算得到α1new=α1old+y1y2(α2old−α2new)\alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})α1new​=α1old​+y1​y2​(α2old​−α2new​)

计算截距b和误差EiE_iEi​

每次完成两个变量的更新优化后,都要重新计算截距b。当0&lt;α1new&lt;C0&lt;\alpha_1^{new}&lt;C0<α1new​<C时,由KKT条件可知:∑i=1NαiyiKi1+b=y1\sum_{i=1}^N\alpha_iy_iK_{i1}+b=y_1i=1∑N​αi​yi​Ki1​+b=y1​于是得到:b1new=y1−∑i=3NαiyiKi1−α1newy1K11−α2newy2K21b_1^{new}=y_1-\sum_{i=3}^N\alpha_iy_iK_{i1}-\alpha_1^{new}y_1K_{11}-\alpha_2^{new}y_2K_{21}b1new​=y1​−i=3∑N​αi​yi​Ki1​−α1new​y1​K11​−α2new​y2​K21​由E1E_1E1​的定义:E1=∑i=3NαiyiKi1−α1oldy1K11−α2oldy2K21+bold−y1E1=\sum_{i=3}^N\alpha_iy_iK_{i1}-\alpha_1^{old}y_1K_{11}-\alpha_2^{old}y_2K_{21}+b^{old}-y_1E1=i=3∑N​αi​yi​Ki1​−α1old​y1​K11​−α2old​y2​K21​+bold−y1​将上式代入到E1E_1E1​中得到:b1new=−E1−y1K11(α1new−α1old)−y2K21(α2new−α2old)+boldb_1^{new}=-E_1-y_1K_{11}(\alpha_1^{new}-\alpha_1^{old})-y_2K_{21}(\alpha_2^{new}-\alpha_2^{old})+b^{old}b1new​=−E1​−y1​K11​(α1new​−α1old​)−y2​K21​(α2new​−α2old​)+bold同理,如果0&lt;α2new&lt;C0&lt;\alpha_2^{new}&lt;C0<α2new​<C,那么b2new=−E2−y1K12(α1new−α1old)−y2K22(α2new−α2old)+boldb_2^{new}=-E_2-y_1K_{12}(\alpha_1^{new}-\alpha_1^{old})-y_2K_{22}(\alpha_2^{new}-\alpha_2^{old})+b^{old}b2new​=−E2​−y1​K12​(α1new​−α1old​)−y2​K22​(α2new​−α2old​)+bold如果α1new,α2new\alpha_1^{new},\alpha_2^{new}α1new​,α2new​是0或者C,那么bnew=b1new+b2new2b^{new}=\frac{b_1^{new}+b_2^{new}}{2}bnew=2b1new​+b2new​​。

更新bnewb^{new}bnew之后,还要更新对应的EiE_iEi​:Einew=∑j=1NyjαjK(xi,xj)+bnew−yiE_i^{new}=\sum_{j=1}^Ny_j\alpha_jK(x_i,x_j)+b^{new}-y_iEinew​=j=1∑N​yj​αj​K(xi​,xj​)+bnew−yi​

SMO算法

输入:线性可分训练集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\left\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\right\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},其中,xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,Nx_i\in \mathcal {X}=R^n,y_i \in \mathcal {Y}=\left\{+1,-1\right\},i=1,2,...,Nxi​∈X=Rn,yi​∈Y={+1,−1},i=1,2,...,N,精度ε\varepsilonε
输出:近似解α\alphaα

  • 取初值α(0)=0\alpha^{(0)}=0α(0)=0,令k=0
  • 选取优化变量α1(k),α2(k)\alpha_1^{(k)},\alpha_2^{(k)}α1(k)​,α2(k)​,解析求解两个变量的最优化问题,求得最优解α1(k+1),α2(k+1)\alpha_1^{(k+1)},\alpha_2^{(k+1)}α1(k+1)​,α2(k+1)​,更新α\alphaα为α(k+1)\alpha^{(k+1)}α(k+1)
  • 若在精度ε\varepsilonε范围内满足停止条件∑i=1Nαiyi=0\sum_{i=1}^N\alpha_iy_i=0i=1∑N​αi​yi​=00≤αi≤C,i=1,2,...,N0\leq \alpha_i \leq C,i=1,2,...,N0≤αi​≤C,i=1,2,...,Ny.g(xi)={≥1,{xi∣αi=0}=1,{xi∣0&lt;αi&lt;C}≤1,{xi∣αi=C}y.g(x_i)=\begin{cases} \ge 1, \left\{x_i|\alpha_i=0\right\} \\ =1, \left\{x_i|0 &lt; \alpha_i &lt; C\right\} \\ \leq 1, \left\{x_i|\alpha_i=C\right\} \end{cases}y.g(xi​)=⎩⎪⎨⎪⎧​≥1,{xi​∣αi​=0}=1,{xi​∣0<αi​<C}≤1,{xi​∣αi​=C}​其中g(xi)=∑j=1NαjyjK(xi,xj)+bg(x_i)=\sum_{j=1}^N\alpha_jy_jK(x_i,x_j)+bg(xi​)=j=1∑N​αj​yj​K(xi​,xj​)+b则转到下一步,否则令k=k+1,转到第2步;
  • 取α=α(k+1)\alpha=\alpha^{(k+1)}α=α(k+1)
变量的选择
  1. 第一个变量的选择
    KKT条件:αi=0⇔yig(xi)≥1\alpha_i=0\Leftrightarrow y_ig(x_i)\ge 1αi​=0⇔yi​g(xi​)≥10&lt;αi&lt;C⇔yig(xi)=10&lt;\alpha_i&lt;C\Leftrightarrow y_ig(x_i)= 10<αi​<C⇔yi​g(xi​)=1αi=C⇔yig(xi)≤1\alpha_i=C\Leftrightarrow y_ig(x_i)\leq 1αi​=C⇔yi​g(xi​)≤1SMO选择第1个变量的过程称为外层循环。外层循环在训练样本中选取违反KKT条件最严重的样本点,并将其对应的变量作为第1个变量。该检验是在ε\varepsilonε范围内进行的。检验过程中,外层循环首先遍历所有满足条件的0&lt;αi&lt;C0 &lt; \alpha_i &lt; C0<αi​<C的样本点,检验它们是否满足KKT条件。如果这些样本点都不满足KKT条件,那么遍历整个训练集,检验它们是否满足KKT条件。
  2. 第2个变量的选择
    SMO选择第2个变量的过程称为内层循环。假设外层循环找到第1个变量α1\alpha_1α1​,现在在内层循环中找到第2个变量α2\alpha_2α2​。第2个变量的选择标准是使∣α1−α2∣|\alpha_1-\alpha_2|∣α1​−α2​∣有足够大的变化。因为α2new\alpha_2^{new}α2new​是依赖于∣α1−α2∣|\alpha_1-\alpha_2|∣α1​−α2​∣,选择一个α2\alpha_2α2​,使得∣α1−α2∣|\alpha_1-\alpha_2|∣α1​−α2​∣尽可能的大,从而加快计算速度。如果E1E_1E1​是正的,那么选择最小的EiE_iEi​作为E2E_2E2​;如果E1E_1E1​是负的,那么选择最大的EiE_iEi​作为E2E_2E2​。
参考文献
  • 李航 《统计学习方法》
支持向量机(SVM) SMO算法详解 1.寻找最大间隔 训练样本集:D = { (x1, y1) , (x2,y2) , ... ,(xm,ym)} , yiϵ { -1, +1} 划分超平面的线性方程:wTx + b = 0(1) 样本空间中任一点x到超平面(w, b)的距离为: (2) 假设超平面(w, b)能将训练样本正确分类,对于(xi, yi)ϵD, 有: (3) 间隔为: (4) 欲求... 阅读详情

相关推荐

SVM解释:五、SMO算法

SMO算法是John C. Platt在1998年提出的。论文的题目是”Sequential Minimal Optimization:A Fast Algorithm for Training Support Vector Machines”。它很快便成为最快的二次规划优化算法,特别是在针对线性SVM和数据稀疏时性能更优。 当然了,SMO优越性能的背后是其相当复杂的数学推导,所以,我也把这块最...

guoziqing506的博客 1万+

基于weka手工实现支持向量机smo算法

基于weka手工实现支持向量机smo算法

你的问题在于,读书太少而想得太多。 2327

支持向量机SVM与SMO算法的的详细推导过程

通俗来说,支持向量机就是一个二分类问题,根据所给的训练集数据集进行将数据的最佳划分,以达到测试集的最佳分类。支持向量机也叫做SVM,在实际工业的运用中,有着很强的可靠性和广泛的使用。接下来我们就来具体介绍一下这么好用的算法。所谓的二分类问题就是通过一条分割线来对数据进行分类,在二维情况下就是平面直角坐标系下的y=kx+b,当x的维度(对应与需要分类的条件,即属性增多的情况)大于等于2时,情况就上升的多维的情况,我们就引出了超平面的概念。

吊车尾小队 1019

机器学习--支持向量机实战(三)完整版SMO算法实现

        完整版和简化版的smo不通之处在于alpha的选择方式上,alpha的更改和代数运算和简化版本,完整版的alpha的选择方式采用了启发式进行选择,前面文章已经详解了,这里再简单的叙述一下:         Platt SMO算法是通过一个外循环来选择第一个alpha值的,并且其选择过程会在两种方式之间进行交替即:一种方式是在所有数据集上进行单遍扫描,另一种方式则是在非边界alph...

进击的菜鸟 2927

SVM支持向量机(SMO算法)的R实现

最近一段时间想好好把支持向量机学习下,并

u014543921的专栏 1919

支持向量机(SVM)凸二次规划的求解——序列最小最优化算法(SMO)原理及python实现

原问题: min⁡α12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi\min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_iαmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​ s....

qq_39320588的博客 1万+

机器学习之利用SMO算法求解支持向量机—基于python

本期将讨论支持向量机的实现问题,我们知道支持向量机的学习问题可以化为求解凸二次规划问题。这样的凸二次规划问题具有全局最优解,并且有许多最优化算法可以用于这一问题的求解。但是当训练样本容量很大时,这些算法往往变得非常低效,以致无法使用。所以,如何高效地实现支持向量机学习就成为一个重要的问题。目前人们已提出许多快速实现算法。本期讲述其中的序列最小最优化(sequential minimal optimization, SMO)算法。

qq_45856698的博客 2306

机器学习实战之支持向量机(SVM)(三)SMO高效优化算法

转载请注明作者和出处:https://blog.youkuaiyun.com/weixin_45814668 知乎:https://www.zhihu.com/people/qiongjian0427 Git:https://github.com/qiongjian/Machine-learning/ 运行环境:anaconda—jupyter notebook Python版本: Python3.x 更多精彩内容,尽在微信公众号,欢迎您的关注: 目录简介 简介 ...

weixin_45814668的博客 1542

SVM支持向量机-SMO算法公式推导(2)

1.SMO算法简介SMO算法又称序列最小优化,是John Platt发布的的一种训练SVM的强大算法,SMO算法的思想是将大的优化问题转换为多个小优化问题,这些小的优化往往很容易求解,并且对他们进行顺序求解和作为整体求解的结果是完全一致的。SMO算法的目标是求出一些列alpha和b,一旦求出alpha,我们的超平面w的系数便得到,我们就可以利用超平面来进行分类了。SMO算法的工作原理是每次循环中选......

BITDDD小栈 3988

秦刚刚的机器学习成长之路之SVM原理(SMO算法详解)

SMO算法详解(Sequential Minimal Optimization) 写作背景:最近在学SVM算法,在看了一些资料后,发现:很多书籍(例如:《机器学习》)或资料在讲解SVM算法时,都只是讲到了为了计算方便,可以将SVM算法需要求解的原始问题转化为它的对偶问题,然后使用SMO算法求解对偶问题,但是却没有详细解释SMO算法的具体解法。在我苦恼之际,实验室师兄分享给我一篇讲得很好的博客,因此...

秦刚刚的博客 1349

二分类支持向量机模型SVM知识点详解

分类,支持向量机,SVM

三石 2万+

支持向量机(SVM)+SMO算法讲解

支持向量机(SVM)+SMO算法讲解 关于模式识别学习,我自己认为就是边看代码边学习比较好,因为只看概念很容易造成误解,认为自己都懂了,其实还很浅显,要想深入理解,还是必须结合代码。 文中所需的数据我会放到资源中,以供大家学习。 def testDigits(kTup=('rbf', 10)): dataArr,labelArr = loadImages(r'C:\Users\Admini...

wuxulong123的博客 3068

支持向量机(Support Vector Machine,SVM)之SMO算法及其Python实现

支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,广泛应用于分类和回归问题。SVM的核心思想是找到一个最优的超平面,将数据集划分为不同的类别,并且使得离超平面最近的样本点到超平面的距离最大化。SMO(Sequential Minimal Optimization)是一种用于求解SVM的优化算法。它的主要思想是将大规模的优化问题拆分为多个较小的子问题,并通过迭代的方式逐步优化每个子问题。这种分解和优化的策略使得SMO算法在实践中具有很高的效率和可扩展性。

2301_79366435的博客 284

python实现支持向量机SVM源码(SMO算法)

有用请点赞,没用请差评。 欢迎分享本文,转载请保留出处。 本次是学习了李航博士《统计学习分析》后实现了算法,算法实现了线性支持向量机和非线性支持向量机,采用SMO算法求解。算法中实现了两种核函数:高斯核函数和多项式核函数。下面代码中采用的数据集为鸢尾花数据集中的两个类别的数据,若要尝试非线性数据集可以从笔者github:https://github.com/Tomator01/-Machin...

Big_Pai的博客 3388

深入理解支持向量机(SVM)及SMO算法

本文还有配套的精品资源,点击获取 简介:支持向量机(SVM)是一种强大的监督学习方法,主要用于分类和回归分析。本课程将详细讲解SVM的构建、软间隔最大化、对偶问题转换、SMO算法实现、核函数选择等核心概念,以及如何进行训练与预测,并对关键参数进行调优。通过实际的MATLAB代码,学习者将深入理解SVM的工作原理及其在多领域的应用。 1. SVM基础知识与监督学习应...

weixin_35903223的博客 1535

从BAM到bigWig:用UCSC工具链完成测序数据可视化的完整流程

本文详细介绍了从BAM文件到bigWig格式的基因组数据可视化完整流程,涵盖UCSC工具链配置、文件格式转换、参数优化及常见问题解决方案。通过实战指南帮助研究人员高效完成测序数据可视化,特别适合ChIP-seq和RNA-seq数据分析。

weixin_29309213的博客 707

SVM支持向量机-《机器学习实战》SMO算法Python实现(5)

经过前几篇文章的学习,SVM的优化目标,SMO算法的基本实现步骤,模型对应参数的选择,我们已经都有了一定的理解,结合《机器学习实战》,动手实践一个基本的SVM支持向量机,来完成一个简单的二分类任务。建立模型之前,首先看一下我们的数据,然后再用支持向量机实现分类: 这里只截取部分,我们的数据是......

BITDDD小栈 3450

蓝牙Channel Sounding为真正的距离感知赋能

1:工作原理蓝牙™信道探测使用两种经过验证的测距方法——PBR(PBR)和RTT(RTT),实现蓝牙设备之间的安全精密测距。

weixin_43720159的博客 807

支持向量机原理及求解 SVM Slater条件 KKT条件 SMO算法 软间隔

支持向量机SVM原理及求解过程介绍 支持向量机(Support Vector Machine, 简称SVM),又称为Sparse Kernel Machine或Maximum Margin Classifier,是一类经典的机器学习方法,它融合了之前已有的计算学习方法、线性判别函数和优化方法,常用于分类、回归和异常检测任务,在解决小样本问题、非线性学习和高维模式识别中有特别的优势。20世纪60年代...

BigYouYou 2292

Android Framework AudioFlinge 面试题及参考答案

请解释什么是 AudioFlinger? AudioFlinger 是 Android 音频系统中的一个关键服务。它位于 Android 系统的中间层,是连接上层应用和底层音频硬件驱动的重要桥梁。从功能角度来讲,它主要负责音频数据的混合(Mix)以及输出(Output)。 当多个应用程序同时播放音频时,比如一个音乐播放器在播放歌曲,同时手机的闹铃响起,AudioFlinger 就会发挥它的混合功能。它会把这些不同来源的音频数据按照一定的规则和算法混合在一起。这种混合并不是简单的相加,而是要考

大模型大数据攻城狮的专栏 1576

【华为OD技术面试手撕真题】25、验证IP地址 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

验证IP地址 华为od机试真题,华为OD技术二面,华为od机考,华为od手撕真题,华为od技术二面,华为od机试,华为OD机试的高频手撕代码题,华为od八股文

KJ.JK 4043

【机器学习】SVM支持向量机算法和实现

实验内容本实验介绍SVM支持向量机原理,并通过三个实验逐步深入的了解如何实现该算法。实验目标通过本实验掌握SVM相关算法原理,了解算法的实现。实验知识点SVM支持向量机原理实验环境预备知识概率论与数理统计Linux命令基本操作Python编程基础SVM的全称是,即支持向量机,主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。SVM要解决的问题可以用一个经典的二分类问题加以描述。我们以一个红蓝球分类的问题开始SVM的学习。

MAYDAY01520的博客 3287

Hermes Agent 桌面版安装部署完全指南:一步步安装自进化Agent智能体

是由开发的开源自主 AI 智能体(MIT 协议)。它不是绑定在集成编辑器上的编码助手,也不是围绕单一 API 的聊天机器人封装——它是一个越用越强大的自主智能体,拥有独一无二的闭环学习系统特性说明自主技能创建在复杂任务后自动生成可复用的 Skills(技能)技能自我改进使用过程中持续优化已有技能持久化记忆跨会话记住你的项目、偏好和解决方案用户画像建模通过 Honcho 方言式推理,逐步构建对你的深度理解20+ 平台接入。

大模型与Agent智能体 7758
上一篇: 机器学习之-支持向量机SVM原理
下一篇: 中文分词和HMM模型
code__online
博客等级 码龄9年 142粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值