支持向量機matlab實現(xiàn)_第1頁
支持向量機matlab實現(xiàn)_第2頁
支持向量機matlab實現(xiàn)_第3頁
支持向量機matlab實現(xiàn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、支持向量機A=load('h:study.txt');%加載數(shù)據(jù)X=A(:,1:2);%寺征值的數(shù)據(jù)label=A(:,3);%fe簽向量b=0;%待優(yōu)化的參數(shù)row,col=size(A);%計算矢I陣A的行數(shù)和列數(shù)iter=0;%迭代次數(shù)C=0.4;%最大間隔和分類正確的權(quán)重toler=0.001;MAX=40;%最大迭代次數(shù)alphas=zeros(row,1);%要求的參數(shù),初始化為0while(iter<MAX)iterchange=0;%判斷某一次循環(huán)中有沒有參數(shù)改變fori=1:rowfxi=double(alphas.*label)'*(X*X(i

2、,:)')+b;%第i個的預(yù)測值ei=fxi-double(label(i);%第i個預(yù)測值和真實值之差if(alphas(i)<C&&label(i)*ei<-toler)|(alphas(i)>0&&label(i)*ei>toler)j=i;%產(chǎn)生另外一個值jwhilej=ij=randint(1,1,row)+1;endfxj=double(alphas.*label)'*(X*X(j,:)')+b;%第j個的預(yù)測值ej=fxj-double(label(j);%第j個預(yù)測值和真實值之差alphasoldI

3、=alphas(i);%留參數(shù)的值alphasoldJ=alphas(j);if(label(i)=label(j)%限制求導(dǎo)出來的label(j)的值,在L和H之間L=max(0,alphas(j)-alphas(i);H=min(C,C+alphas(j)-alphas(i);elseL=max(0,alphas(j)+alphas(i)-C);H=min(C,alphas(j)+alphas(i);endifL=Hcontinue;endeta=X(i,:)*X(i,:)'+X(j,:)*X(j,:)'-2*X(i,:)*X(j,:),;%這部分代碼是求求導(dǎo)出來的最優(yōu)值i

4、feta<=0continue;endalphas(j)=alphas(j)+label(j)*(ei-ej)/eta;%求出優(yōu)化后的alphas(j)值ifalphas(j)>H%求出的alphas(j)必須在L和H之間alphas(j)=H;endifalphas(j)<Lalphas(j)=L;endifabs(alphas(j)-alphasoldJ)<0.00001%若果發(fā)生輕微的變化就退出循環(huán)continue;endalphas(i)=alphas(i)+label(i)*label(j)*(alphasoldJ-alphas(j);%更新alphas(i)

5、的值b1=b-ei-label(i)*(alphas(i)-alphasoldI)*(X(i,:)*X(i,:)')-label(j)*(alphas(j)-alphasoldJ)*(X(j,:)*X(j,:)');b2=b-ej-label(i)*(alphas(i)-alphasoldI)*(X(i,:)*X(i,:)')-label(j)*(alphas(j)-alphasoldJ)*(X(j,:)*X(j,:)');ifalphas(i)>0&&alphas(i)<C%b值得更新b=b1;elseifalphas(j)>

6、0&&alphas(j)<Cb=b2;elseb=(b1+b2)/2;enditerchange=iterchange+1;endendifiterchange=0iter=iter+1;elseiter=0;endend支持向量機主要是尋求一種能夠最大間隔的超平面,它與logistic所構(gòu)造的超平面原理不同的是:它主要是尋求局部點最優(yōu)(也就是支持向量點),logistic是尋求全局最優(yōu)。構(gòu)造超平面方程,求出拉格朗日方程,在求出其對偶方程,這個對偶方程用SMO算法求解。實質(zhì)就是求出那些參數(shù),然后就可以求出W,就可以得出那些方程,就得到分割平面。這個算法的思想是在固定其余參

7、數(shù)的時候,求得最優(yōu)的一個參數(shù),但是只把一個當(dāng)做參數(shù)的話,那么這個參數(shù)可以用其他的參數(shù)表示,那么這個參數(shù)就不是參數(shù)。用一對參數(shù)把一個用另外一個參數(shù)表示,求出最優(yōu)解。算法流程:遍歷每個參數(shù);這個參數(shù)是否滿足要求()c?.=0=ytu>1.。ca.<(7o=Ly.ur<1.對應(yīng)的代碼:fxi=double(alphas.*label)'*(X*X(i,:)')+b;%第i個的預(yù)測值ei=fxi-double(label(i);%第i個預(yù)測值和真實值之差if(alphas(i)<C&&label(i)*ei<-toler)|(alphas(

8、i)>0&&label(i)*ei>toler)如果滿足要求的話,隨機選取另外一個參數(shù),j=i;%產(chǎn)生另外一個值jwhilej=ij=randint(1,1,row)+1;endfxj=double(alphas.*label)'*(X*X(j,:)')+b;%第j個的預(yù)測值ej=fxj-double(label(j);%第j個預(yù)測值和真實值之差保留參數(shù)的值并對兩個參數(shù)保存下來:alphasoldI=alphas(i);%alphasoldJ=alphas(j);求導(dǎo)出來的值要限制在一定范圍內(nèi):if(label(i)=label(j)%限制求導(dǎo)出來的

9、label(j)的值,在L和H之間L=max(0,label(j)-label(i);H=min(C,C+label(j)-label(i);elseL=max(0,label(j)+label(i)-C);H=min(C,label(j)+label(i);endalphas(j)=alphas(j)+label(j)*(ei-ej)/eta;%求出優(yōu)化后的alphas(j)值ifalphas(j)>Halphas(j)=H;%求出的alphas(j泌須在L和H之間endifalphas(j)<Lalphas(j)=L;end求出變化后的alphas(i)(直:更新alphas(

10、i)的alphas(i)=alphas(i)+label(i)*label(j)*(alphasoldJ-alphas(j);%值。同時要更新此時的b值:b1=b-ei-label(i)*(alphas(i)-alphasoldI)*(X(i,:)*X(i,:)')-label(j)*(alphas(j)-alphasoldJ)*(X(j,:)*X(j,:)');b2=b-ej-label(i)*(alphas(i)-alphasoldI)*(X(i,:)*X(i,:)')-label(j)*(alphas(j)-alphasoldJ)*(X(j,:)*X(j,:)');ifalphas(i)&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論