本文的配置路徑為 d:\matlab\r2010a\toolbox\libsvm-3.12\matlab,從始至終都是在這個目錄下進行的。
當然,你也可以將編譯好的檔案拷貝到任何地方,只要你當前的工作目錄中有這四個檔案即可。
我的matlab版本 r2012b,我的libsvm版本3.12
2.解壓至指定目錄
將libsvm解壓至d:\matlab\r2010a\toolbox下,你也可以解壓至你喜歡的地方。
3. set path 裡把libsvm資料夾包括進來。
4.編譯 。
d:\matlab\r2010a\toolbox\libsvm-3.12\matlab(即你的libsvm-3.12\matlab下,磁碟可能因人不同)。
5.執行編譯
在matlab命令視窗中輸入
mex -setup
之後有一系列的選擇,自己按自己的電腦選擇就可以,一會出現
done . . .
編譯器選擇好了之後,用make.m編譯
命令視窗輸入 make
可以看到新編譯出4個檔案libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32。
6.測試
此時需注意,libsvm 3.12中提供的是c++版本的資料集heart_scale,這裡需要載入matlab版本的資料集。
這兩個資料集有什麼不同呢?
c++版本的資料集裡面如果某乙個樣本的某乙個特徵為0,這個特徵可以不寫在資料集中,但是在matlab版本中會報錯。
注意到libsvm-3.12下有乙個資料檔案,名稱為heart_scale。這是乙個libsvm格式的資料檔案。可使用libsvmread函式將其轉化為matlab格式。
可使用以下**測試:
[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
model = svmtrain(heart_scale_label,heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] =svmpredict(heart_scale_label, heart_scale_inst, model); % test the trainingdata
輸出optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nsv = 132, nbsv = 107
total nsv = 132
>> [predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);
accuracy = 86.6667% (234/270) (classification)
在MATLAB中安裝libsvm
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...
在matlab中使用libsvm
上周五開始就嘗試使用libsvm,因為matlab彈出的各種編譯器問題解除安裝2014a,裝上2017b,憂傷地發現還是失敗 目前最新為libsvm 3.22 關於新增路徑 方法一 主頁 設定路徑 選擇windows資料夾即可 方法二 將libsvm 3.22所在資料夾設定為當前路徑 選擇windo...
LibSVM 在matlab中的使用
搞了一天,看了很多資料,終於搞好了matlab中呼叫大牛寫好的svm庫,將結果告訴大家避免以後走彎路。1.參考 詳解 2.操作流程 請注意 詳細操作流程請參考上面的 詳解 這裡只說大框架和詳解裡沒有提到的問題。a.設定path file set path add with subfolders 加入...