編寫程式的基本步驟~
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...