libsvm在MATLAB的安裝

2021-07-25 04:14:32 字數 1499 閱讀 1755

本文的配置路徑為 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 加入...