支持向量機原理及matlab實現(xiàn)_第1頁
支持向量機原理及matlab實現(xiàn)_第2頁
支持向量機原理及matlab實現(xiàn)_第3頁
支持向量機原理及matlab實現(xiàn)_第4頁
支持向量機原理及matlab實現(xiàn)_第5頁
免費預(yù)覽已結(jié)束,剩余4頁可下載查看

下載本文檔

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

文檔簡介

1、1. IntroductionAbaloneAge.data數(shù)據(jù)有4177個樣本,7個特征,其中rings作為預(yù)測標簽,也就是年齡。對樣本的一些統(tǒng)計數(shù)據(jù)如下表所示ONameDataTypeMeas.DescriptionLengthcontinuousmmLongestshellmeasurementDiametercontinuousmmperpendiculartolengthHeightcontinuousmmwithmeatinshellWholeweightcontinuousgramswholeabaloneShuckedweightcontinuousgramsweightofm

2、eatVisceraweightcontinuousgramsgutweight(afterbleeding)ShellweightcontinuousgramsafterbeingdriedRingsintegerStatisticsfornumericdomains:LengthDiamHeightWholeShuckeVisceraShellRingsMin0.0750.0550.0000.0020.0010.0010.0021Max0.8150.6501.1302.8261.4880.7601.00529Mean0.5240.4080.1400.8290.3590.1810.2399.

3、934SD0.1200.0990.0420.4900.2220.1100.1393.224Correl0.5570.5750.5570.5400.4210.5040.6281.02. AlgorithmDescription考慮到數(shù)據(jù)的可分性,對年齡的預(yù)測是一個回歸問題,所以采用支持向量機對數(shù)據(jù)進行回歸分析。一、支持向量機的基本原理支持向量機(SVM)是Corinna和Vapnik于二十世紀末首先提出的。支持向量機方法Vapnik-Chervonenkis理論與構(gòu)造風(fēng)險最小理論為根底,使離超立體最接近的元素到超平面的間隔最大。通常超平面不止一個,也就是說支持向量機的目標就是最大化超平面之間的間

4、隔,也就是建立最好的分類超平面,從而來提高學(xué)習(xí)分類機器的的泛化處理能力。該方法在解決高維小樣本數(shù)據(jù)、數(shù)據(jù)的非線性以及解的局部極小點等多個問題中均展示出了很多獨有的優(yōu)點,并進而將其推行使用到了其余相聯(lián)系的機器學(xué)習(xí)問題中。支持向量機方法早已被廣泛的應(yīng)用到了腫瘤數(shù)據(jù)分類等領(lǐng)域的問題研究中支持向量機的具體求解過程如下:(1)設(shè)已知樣本訓(xùn)練集:nTXi,yi,Xn,ynXY其中,XXRn,yiY1,1i1,2,,n,X為特征向量(2)選擇適當(dāng)核函數(shù)K(Xi,Xj)以及參數(shù)C,解決優(yōu)化問題:1min2iiyijyjKx,Xj得最優(yōu)解:ns.t.iyi0,0iC,i1,,ni1*T1,.,n0(3)選取的正

5、分量,計算樣本分類閾值:bl*.yiyiik(為,Xj)。i1(4)構(gòu)造最優(yōu)判別函數(shù):nf(X)sgnyaiK(x,Xj)i1支持向量機內(nèi)積核核函數(shù)K的主要種類有:線性內(nèi)核函數(shù)K(Xi,Xj)(Xi,Xj)多項式核函數(shù)K(,xj)(冷5)1q圖斯徑向基核函數(shù)(RBF)K(Xj,Xj)expxj22-雙曲正切核函數(shù)(Sigmoid核函數(shù))K(x,Xj)tanh(v(Xj)c)一般地,用SVM做分類預(yù)測時必須調(diào)整相關(guān)參數(shù)(特別是懲罰參數(shù)c和核函數(shù)參數(shù)g),這樣才可以獲得比較滿意的預(yù)測分類精度,采用CrossValidation的思想可以獲取最優(yōu)的參數(shù),并且有效防止過學(xué)習(xí)和欠學(xué)習(xí)狀態(tài)的產(chǎn)生,從而能夠

6、對于測試集合的預(yù)測得到較佳的精度。根據(jù)輸入數(shù)據(jù)白線性可分性(線性可分或近似線性可分和線性不可分),可以將支持向量機分為兩大類:非線性支持向量機、線性支持向量機。(1)線性支持向量機若要介紹線性支持向量機,首先需要介紹下一個定義:線性分類器。A、B是兩個不同的類別,需要在其中間加一個分類函數(shù),這樣就能夠?qū)、B樣本區(qū)分開,那么則說這個數(shù)據(jù)集是線性可分,其所對應(yīng)的分類器便是線性分類器。對于二維空間,顯然,分類函數(shù)可以看成是一條直線。同理,三維空間里分類函數(shù)就是一個平面,忽略空間的維數(shù),分類函數(shù)就可以統(tǒng)稱為超平面。(2)非線性支持向量機從前一小節(jié)可以看出來,線性支持向量機是二類分類器。但是,在現(xiàn)實環(huán)

7、境和問題中,往往要解決多類別的分類的問題。那么,怎么從二類分類器擴充到多類別分類器呢?就是一個值得思考探尋的方向。從二類分類器獲取多類分類器的方法有很多,但在實際應(yīng)用中,采用的較多的措施是通過尋找一個合適的非線性轉(zhuǎn)換函數(shù),進而能夠使數(shù)據(jù)從原始的特征空間中映射到新的特征空間中,使得數(shù)據(jù)在新的特征空間中是線性可分的。但是,尋找這樣的非線性轉(zhuǎn)換函數(shù)很難,并且即使能找到,要實現(xiàn)這種非線性的轉(zhuǎn)換也很麻煩。因此,引入了核函數(shù),它使得甚至可以不必知道變換函數(shù),只要一種核函數(shù)滿足Mereer定理,它就對應(yīng)某一變換空間中的內(nèi)積,然而內(nèi)積的計算卻容易的多。常用的核函數(shù)主要分為四類:Gaussian核函數(shù)、Poly

8、nomial核函數(shù)、Sigmoid核函數(shù)和Liner核函數(shù),不同的核函數(shù)對應(yīng)不同的非線性變換函數(shù),最后會形成不同的算法。這就使得相應(yīng)的優(yōu)化問題變成了凸二次規(guī)劃問題,不會出現(xiàn)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)陷入局部極值的問題,這是SVM自提出后得到快速發(fā)展的重要原因之一。SVM的優(yōu)勢:(1)處理解決了樣本數(shù)據(jù)較少的機器學(xué)習(xí)問題;(2)提高了學(xué)習(xí)機的泛化性能;(3)少數(shù)支持向量決定了最后的決策函數(shù),因此,某種程度上對高維問題有很好的輔助解決作用,提高了方法的魯棒性;(4)完善改進了對于非線性數(shù)據(jù)分類研究的問題;(5)規(guī)避了神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)抉擇問題和局部極小值問題。SVM的劣勢:(1)缺乏對數(shù)據(jù)缺失的判斷能力;(2)解決

9、非線性數(shù)據(jù)還沒有完善的方案和措施,只能靠慎重的選擇核函數(shù)來解決。另一方面,所有傳統(tǒng)分類方法中,SVM的分類性能是最好的,所以在本文的對比實驗中,從傳統(tǒng)分類方法中選擇了具有代表性的SVM分類器來進行對比實驗。工作區(qū)公稱matrix177x&doub/e4177r5doabie利用隨機數(shù),隨機選擇70%的樣本作為訓(xùn)練集,余下的30%的樣本作為測試集,評價模型的好壞應(yīng)該從訓(xùn)練集和測試集兩個方面考慮,使用matlab自帶fitrsvm程序,對樣本歸一化后,訓(xùn)練集進行訓(xùn)練,得到模型Mdlo麻1.隨機產(chǎn)生訓(xùn)練感和則該篁口=工卻dp片;工0.jRdt工立,1";%乙訓(xùn)練第一一7噴的樣本lo

10、orisiza(X,1H0.7):p_train=matrix(n(l:nl)>:):train=rings(n(l:nl)j:1二ni|X3.刎試集一一北%的個樣本pest=matrix:«nd,»j:);t_test=rings(n(nl+1:endjj:1:XX%1.訓(xùn)練集Lpn._1rain,irvpirtpE=juapminiiiiLK'P-train'".':pn_train=pn_lrain"pn_t4:st=nL&pn.irmax('atyly,inputps1pn_test=pn_tsf;%

11、2,測試集Ltn_irain,outpulps=niapminiiaTtJ:tn_train=tii-ltain"tn_test=Lapairunsa:('apply'31_teat*outputps):tn_test=tiLlest":Mdl=fitrsinifpn-trairLtn_trainJ.利用訓(xùn)練得到的模型,分別對訓(xùn)練集和測試集進行預(yù)測,并計算其與真實值之間的差距,評價指標選擇的是均方根誤差和平均絕對誤差。其中result_1記錄了訓(xùn)練集真實和預(yù)測值,result_2記錄了測試集真實和預(yù)測值,abel、msel分別表示訓(xùn)練集平均絕對誤差和均方根誤

12、差。Pre-dict_l二prediet<Mdl,trairij:Fredi=predict'Mdljjri.test):%1.反歸一化predict_l=inapininjiiax|Jrevets?",Predict_ljoutputps);predict_2=1tevexsejPredict_2joutputpsj;%2.結(jié)果對比result_l=t_trainpredict_Il;result_12t_testpred.ict_2j;rel-result(:12);ab?l二suniCabsjrl)/size(p-trairij1)msel二辭qi;t(號,工片】

13、,"i:1-<p_train.11re2=mil七_2(1l)-result_2.2):=sum<at>s(re2)Vsize'p_test1)jhs&2=sqrttsum(t52./sizees+j1)1命令行窗口abe1=L5723use1-2.2745at»e2=1.5571Ins*2-2.327S可視化測試集預(yù)測與真實年齡的差距。figure(1)plott1:length(l_test),t_test?Jl*',I:Length(t_test'*3predict_2,Jb:oJ)gridon工0Mde真實值&quo

14、t;預(yù)測值)xlabel('樣本編號)ylabelCage*)工作區(qū)abelabe2inputpsmatrixMdlms*lmse2rnloutputpspjertpjrainprotestpn_trairpredirt_lPredict_lpredirt.2Predict_2rel-neZresultresult_2rings1.55181.6199£slstruct41775doubleIflRegrsionSVM227712.33641x4177dwbiq29231x1struct7754jit»double2923jc6dsiHe125Hrtfdouble2

15、923范dq向u2923x1double23%idouble1252double1254x1d辦ubl總2923x1daub加lZ54xldouble2923x2dmh拒1254x2£>uhie4277jfdoublw樣本箱號3.Conclution支持向量機是一種基于統(tǒng)計學(xué)習(xí)理論的模式識別方法。在模式識別等領(lǐng)域獲得了廣泛的應(yīng)用。少數(shù)支持向量決定了最后的決策函數(shù),因此,某種程度上對高維問題有很好的輔助解決作用,提高了方法的魯棒性。隨機選擇70%的樣本作為訓(xùn)練集,30%的樣本作為測試集,平均絕對誤差和均方根誤差作為模型的評價指標,訓(xùn)練集預(yù)測結(jié)果與原始數(shù)據(jù)標簽的的平均絕對誤差(ab

16、e)為1.5723,均方根誤差(mse)為2.2745,測試集平均絕對誤差(abe)1.5671,均方根誤差(mse)為2.3279,說明支持向量機對數(shù)據(jù)年齡的預(yù)測具有較好的結(jié)果。AppendixCode:%清空環(huán)境變量clearclc%導(dǎo)入數(shù)據(jù)X=load('AbaloneAge.txt');Jmatrix=X(:,1:6);rings=X(:,end);%1.隨機產(chǎn)生訓(xùn)練集和測試集n=randperm(size(matrix,1);%2.訓(xùn)練集一一70%的樣本n1=floor(size(X,1)*0.7);|p_train=matrix(n(1:n1),:);t_train

17、=rings(n(1:n1),:);%3.測試集一一30%的個樣本p_test=matrix(n(n1+1:end),:);t_test=rings(n(n1+1:end),:);%數(shù)據(jù)歸一化pn_train,inputps=mapminmax(p_train');pn_train=pn_train'pn_test=mapminmax('apply',p_test',inputps);pn_test=pn_test'%2.測試集tn_train,outputps=mapminmax(t_train');tn_train=tn_train&

18、#39;tn_test=mapminmax('apply',t_test',outputps);tn_test=tn_test'Mdl=fitrsvm(pn_train,tn_train);%yfit=predict(Mdl,pn_test);%SVM仿真預(yù)測Predict=predict(Mdl,pn_train);Predict_2=predict(Mdl,pn_test);%1.反歸一化predict_1=mapminmax('reverse',Predict_1,outputps);predict_2=mapminmax('reverse',Predict_2,outputps);%2.結(jié)果對比result_1=t_trainpredict_1;result_2=t_testpredict_2;re1=result_1(:,1)-result_1(:,2);abe1=sum(abs(re1)/size(p_train,1)msel=sqrt(sum(re

溫馨提示

  • 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

提交評論