搞了一天,看了很多資料,終於搞好了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了。祝大家成功快速實現!
在MATLAB中安裝libsvm
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...
LibSVM 在matlab中的使用
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...
LibSVM 在matlab中的使用
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...