MATLAB下使用libsvm (三)

2021-07-04 05:46:12 字數 1108 閱讀 7013

編寫程式的基本步驟~

1、將資料中心化,是每一組特徵中心化,而不是每個樣本的資料中心化哦。原因就是之後要進行pca降維,這個過程之前如果不將資料中心化,那麼之後測試資料集對映出來的點就不對啦~具體看圖啦~

至於是否要歸一化,這個並不是必要的步驟,所以看心情咯

2、pca降維,這個最好是以矩陣短的那一邊進行svd分解,這樣可以提速啦,轉換的公式可以推導一下哈

x:2891×

377的矩陣

根據推導可得:

y和xz都是c

的特徵向量

雖然 y

是2891

×2891

xz是2891

×377

但是,由於x

的秩最多

377,所以的秩最多377

,所以後邊都是

0,即使乘起來也木有用

我們之後想要取前邊多少維的資料,就直接取xz

的就好啦,和

y的效果一樣噠

此處需要注意的是:y和z

都是單位矩陣,但是

xz並不是,因此在使用

xz之前需要對

xz進行歸一化

3、資料經過pca降維之後還需要對資料進行歸一化,標籤不必歸一化

4、訓練模型~~~

主要就是調節引數啦,當然,即使你不設定引數,svmtrain也會有預設引數啦~可以執行,但是效果嘛,就不敢保證咯

上網看了好多教程,但是都沒有深入講解如何高效地調節svm的引數~~後來才知道,原來只有c和g是可以用程式自動選擇的(網上搜一下,有很多類似程式噠),其他的。。。可能都要憑經驗或者試出來的~

5、測試模型

還記得之前資料中心化那一步吧,要用那個均值哦,測試的資料要減去均值,然後再進行降維操作噠,具體原因看前邊的解釋啦~

資料都放在乙個維度上了之後,就可以用svmpredict**啦~

這個過程就算正式全部搞定啦~然後你看準確率不大好的話,可以再調整前邊的一些引數啦~加油!

LIBSVM在matlab下的使用安裝

2 解壓壓縮包到電腦上一位置,如 c program files libsvm 3.18 3 假設你使用的是64位的作業系統和matlab。此時將libsvm 3.18資料夾下的windows目錄新增到matlab目錄中。即在matlab目錄中新增 c programfiles libsvm 3.1...

LIBSVM在matlab下的使用安裝

3 假設你使用的是64位的作業系統和matlab。此時將libsvm 3.16資料夾下的windows目錄新增到matlab目錄中。即在matlab目錄中新增 c programfiles libsvm 3.16 windows。因為windows下包含了matlab可執行的二進位制檔案libsvm...

libSVM在matlab下的使用安裝

2 解壓壓縮包到電腦上一位置,如 c program files libsvm 3.18 3 假設你使用的是64位的作業系統和matlab。此時將libsvm 3.18資料夾下的windows目錄新增到matlab目錄中。即在matlab目錄中新增 c programfiles libsvm 3.1...