**:
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。
1. 參考**:
詳解:2. 操作流程:
請注意:詳細操作流程請參考上面的「詳解」**,這裡只說大框架和詳解裡沒有提到的問題。
a.設定path
file->set path ->add with subfolders->加入libsvm-3.11資料夾的路徑
b. 在matlab中編譯
目的:將libsvm-3.11\matlab 中 libsvmwrite.c 等 c++檔案編譯成 libsvmread.mexw32 等matlab檔案,這樣就可以在command window中被直接呼叫了。
注意:在最外面的readme中有提到已經有編譯好的檔案,比如在libsvm-3.11\windows中也會看到libsvmread.mexw32,但這裡不要被誤導!還是需要你自己再編譯一遍的!(還有如果matlab版本太低,如matlab 7.0是不能用vs作為編譯器的,只能用vc++ 6.0,這是我勸你給matlab公升級吧!別裝vc了~我就是這樣,公升級到matlab 2011b就可以用vs2008做編譯器了)
c.載入資料集
就是這裡搞了我一下午!
載入資料集
[cpp]view plain
copy
load heart_scale
heart_scale是會報錯的:
[cpp]view plain
copy
??? error
using
==> load
number of columns on line 3 of ascii file d:\zju projects\machine learning\libsvm-3.11\heart_scale must be the same as previous lines.
這時怎麼辦?
法2、用libsvmread而非load,就是這裡
[cpp]view plain
copy
libsvmread(
'heart_scale'
);
這樣就可以載入資料集了,完成該步驟後發現workspace中出現了heart_scale_inst 和 heart_scale_label,說明正確。
ok,下一步我們來測試svm的訓練和predict
d.train & predict
[cpp]view plain
copy
model = svmtrain(heart_scale_label,heart_scale_inst);
[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);
可以看到結果:
[cpp]view plain
copy
accuracy = 86.6667% (234/270) (classification)
*************************mac 版如何在matlab中使用libsvm*************************
下面說下mac怎麼用libsvm,這裡的問題是mex -setup的問題,需要安裝乙個補丁。
1. mac中安裝xcode
2. xcode的preference中裝command line tools
4. 在matlab命令列
輸入》cd(matlabroot)
5. 在matlab命令列輸入這個打補丁
>>!unzip -o ~/downloads/optspatch_macosx8.patch
6. 可以執行mex -setup了,選擇將原來的gcc覆蓋掉
7. 到libsvm/matlab進行make
就搞定啦!
具體參考:
就ok了。祝大家成功快速實現!
Mac中在Matlab中安裝Mosek
在命令列輸入 conda install c mosek mosek再在命令列輸入 python users name mosek 8 tools platform osx64x86 bin install.py以上安裝標準可在官方安裝文件中找到 獲取mosek許可證 在官網中找到academic ...
Matlab 在Matlab中如何畫圓
rectangle函式功能 建立二維矩形物件。1.1 rectangle position x,y,w,h 其中以x,y為起始座標開始,畫出長為w,寬為h的矩形。1.2 rectangle curvature a,b 指定矩陣邊的曲率,可以使它從矩形到橢圓不同變化,水平曲率x為矩形寬度的分數,是沿著...
libsvm在MATLAB的安裝
本文的配置路徑為 d matlab r2010a toolbox libsvm 3.12 matlab,從始至終都是在這個目錄下進行的。當然,你也可以將編譯好的檔案拷貝到任何地方,只要你當前的工作目錄中有這四個檔案即可。我的matlab版本 r2012b,我的libsvm版本3.12 2.解壓至指定...