支持向量機Matlab示例程序參考模板_第1頁
支持向量機Matlab示例程序參考模板_第2頁
支持向量機Matlab示例程序參考模板_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2008-10-31 19:32支持向量機Matlab示例程序四種支持向量機用于函數(shù)擬合與模式識別的Matlab示例程序1模式識別基本概念模式識別的方法有很多,常用有:貝葉斯決策、神經網絡、支持向量機等等。特別說明的是,本文所談及的模式識別是指“有老師分類”,即事先知道訓練樣本所屬的類別,然后設計分類器,再用該分類器對測試樣本進行識別,比較測試樣本的實際所屬類別與分類器輸出的類別,進而統(tǒng)計正確識別率。正確識別率是反映分類器性能的主要指標。分類器的設計雖然是模式識別重要一環(huán),但是樣本的特征提取才是模式識別最關鍵的環(huán)節(jié)。試想如果特征矢量不能有效地描述原樣本,那么即使分類設計得再好也無法實現(xiàn)正確分類

2、。工程中我們所遇到的樣本一般是一維矢量,如:語音信號,或者是二維矩陣,如:圖片等。特征提取就是將一維矢量或二維矩陣轉化成一個維數(shù)比較低的特征矢量,該特征矢量用于分類器的輸入。關于特征提取,在各專業(yè)領域中也是一個重要的研究方向,如語音信號的諧振峰特征提取,圖片的PCA特征提取等等。2神經網絡模式識別神經網絡模式識別的基本原理是,神經網絡可以任意逼近一個多維輸入輸出函數(shù)。以三類分類:I、II、III為例,神經網絡輸入是樣本的特征矢量,三類樣本的神經網絡輸出可以是1;0;0、0;1;0、0;0;1,也可以是1;-1;-1、-1;1;-1、-1;-1;1。將所有樣本中一部分用來訓練網絡,另外一部分用于

3、測試輸出。通常情況下,正確分類的第I類樣本的測試輸出并不是1;0;0或是1;-1;-1,而是如0.1;0;-0.2的輸出。也是就說,認為輸出矢量中最大的一個分量是1,其它分量是0或是-1就可以了。3支持向量機的多類分類支持向量機的基本理論是從二類分類問題提出的。我想絕大部分網友僅著重于理解二類分類問題上了,我當初也是這樣,認識事物都有一個過程。二類分類的基本原理固然重要,我在這里也不再贅述,很多文章和書籍都有提及。我覺得對于工具箱的使用而言,理解如何實現(xiàn)從二類分類到多類分類的過渡才是最核心的內容。下面我僅以1-a-r算法為例,解釋如何由二類分類器構造多類分類器。二類支持向量機分類器的輸出為1,

4、-1,當面對多類情況時,就需要把多類分類器分解成多個二類分類器。在第一種工具箱LS_SVMlab中,文件Classification_LS_SVMlab.m中實現(xiàn)了三類分類。訓練與測試樣本分別為n1、n2,它們是3 x 15的矩陣,即特征矢量是三維,訓練與測試樣本數(shù)目均是15;由于是三類分類,所以訓練與測試目標x1、x2的每一分量可以是1、2或是3,分別對應三類,如下所示:n1 = rand(3,5),rand(3,5)+1,rand(3,5)+2;x1 = 1*ones(1,5),2*ones(1,5),3*ones(1,5); n2 = rand(3,5),rand(3,5)+1,rand

5、(3,5)+2;x2 = 1*ones(1,5),2*ones(1,5),3*ones(1,5); 1-a-r算法定義:對于N類問題,構造N個兩類分類器,第i個分類器用第i類訓練樣本作為正的訓練樣本,將其它類的訓練樣本作為負的訓練樣本,此時分類器的判決函數(shù)不取符號函數(shù)sign,最后的輸出是N個兩類分類器輸出中最大的那一類。在文件Classification_LS_SVMlab.m的第42行:codefct = code_MOC,就是設置由二類到多類編碼參數(shù)。當?shù)?2行改寫成codefct =code_OneVsAll,再去掉第53行最后的引號,按F5運行該文件,命令窗口輸出有:codebook

6、 = 1-1-1-1 1-1-1-1 1old_codebook = 1 2 3比較上面的old_codebook與codebook輸出,注意到對于第i類,將每i類訓練樣本做為正的訓練樣本,其它的訓練樣本作為負的訓練樣本,這就是1-a-r算法定義。這樣通過設置codefct =code_OneVsAll就實現(xiàn)了支持向量機的1-a-r多類算法。其它多類算法也與之雷同,這里不再贅述。值得注意的是:對于同一組樣本,不同的編碼方案得到的訓練效果不盡相同,實際中應結合實際數(shù)據(jù),選擇訓練效果最好的編碼方案。4核函數(shù)及參數(shù)選擇常用的核函數(shù)有:多項式、徑向基、Sigmoid型。對于同一組數(shù)據(jù)選擇不同的核函數(shù),

7、基本上都可以得到相近的訓練效果。所以核函數(shù)的選擇應該具有任意性。對訓練效果影響最大是相關參數(shù)的選擇,如:控制對錯分樣本懲罰的程度的可調參數(shù),以及核函數(shù)中的待定參數(shù),這些參數(shù)在不同工具箱中的變量名稱是不一樣的。這里仍以Classification_LS_SVMlab.m為例,在第38、39行分別設定了gam、sig2的值,這兩個參數(shù)是第63行trainlssvm函數(shù)的輸入參數(shù)。在工具箱文件夾的trainlssvm.m文件的第96、97行有這兩個參數(shù)的定義:% gam : Regularization parameter% sig2 : Kernel parameter (bandwidth in

8、 the case of the RBF_kernel)這里gam是控制對錯分樣本懲罰的程度的可調參數(shù),sig2是徑向基核函數(shù)的參數(shù)。所以在充分理解基本概念的基礎上,將這些概念與工具箱中的函數(shù)說明相結合,就可以自如地運用這個工具箱了,因此所以最好的教科書是函數(shù)自帶的函數(shù)說明。最佳參數(shù)選擇目前沒有十分好的方法,在Regression_LS_SVMlab.m的第46至49行的代碼是演示了交叉驗證優(yōu)化參數(shù)方法,可這種方法相當費時。實踐中可以采用網格搜索的方法:如gam=0:0.2:1,sig2=0:0.2:1,那么gam與sig2的組合就有6x6=36種,對這36種組合訓練支持向量機,然后選擇正確識別率最大的一組參數(shù)作為最優(yōu)的gam與sig2,如果結果均不理想,就需要重新考慮gam 與sig2的范圍與采樣間隔了。5由分類由回歸的過渡LS_SVMlab、SVM_SteveGunn這兩個工具箱實現(xiàn)了支持向量機的函數(shù)擬合功能。從工具箱的使用角度來看,分類與回歸的最大區(qū)別是訓練目標不同。回歸的訓練目標是實際需要擬合的函數(shù)值;而分類的訓練目標是1,2,N(分成N類),再通過適當?shù)木幋a方案將N類分類轉換成多個二類分類。比較文件R

溫馨提示

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

評論

0/150

提交評論