LIBSVM在matlab下的使用安裝

2021-07-26 03:20:36 字數 2821 閱讀 7397

2) 解壓壓縮包到電腦上一位置,如:c:\program files\libsvm-3.18

3) 假設你使用的是64位的作業系統和matlab。此時將libsvm-3.18資料夾下的windows目錄新增到matlab目錄中。即在matlab目錄中新增:c:\programfiles\libsvm-3.18\windows。因為windows下包含了matlab可執行的二進位制檔案libsvmread.mexw64/libsvmwrite.mexw64/svmpredict.mexw64/svmtrain.mexw64

4) 假設你使用的是32位作業系統和matlab,則需要自己編譯相應的二進位制檔案。

在matlab命令視窗輸入

>>mex –setup

這時matlab會提示你選擇編譯mex檔案的c/c++編譯器(先輸入n,再選擇對應的編譯器)。

選擇乙個你電腦上安裝的c/c++編譯器,例如microsoft visual c++ 2010

將matlab當前目錄設定為:cd 『c:\program files\libsvm-3.18\matlab』

輸入命令make

這時你會看到當前目錄生成了二進位制檔案(4個):       

libsvmread.mexw32

libsvmwrite.mexw32

svmpredict.mexw32

svmtrain.mexw32

將當前目錄新增到matlab路徑中即可。

5) 例子乙個測試

注意到libsvm-3.18下有乙個資料檔案,名稱為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

如果出現一行:

accuracy = 86.6667% (234/270) (classification)。就說明成功了。就可以在matlab中使用svm了。

6) svmtrain函式相關引數說明

svmtrain函式返回的model可以用來對測試資料集進行**。這是乙個結構體變數,主要包括了以下幾個域。[parameters, nr_class, totalsv, rho, label, proba, probb, nsv,sv_coef, svs]。英文說明如下:

-parameters: parameters

-nr_class: number of classes; = 2 for regression/one-class svm

-totalsv: total #sv

-rho: -b of the decision function(s) wx+b

-label: label of each class; empty for regression/one-class svm

-proba: pairwise probability information; empty if -b 0 or in one-classsvm

-probb: pairwise probability information; empty if -b 0 or in one-classsvm

-nsv: number of svs for each class; empty for regression/one-class svm

-sv_coef: coefficients for svs in decision functions

-svs: support vectors

如果沒有指定』-b 1』選項則proba和probb為空矩陣。此外,當指定』-v』選項時,返回的model是乙個數值,是cross-validation的準確率。

其中model.paramter是乙個5x1的向量,model.parameters引數意義從上到下依次為:

-s svm型別:svm設定型別(預設0)

-t 核函式型別:核函式設定型別(預設2)

-d degree:核函式中的degree設定(針對多項式核函式)(預設3)

-g r(gama):核函式中的gamma函式設定(針對多項式/rbf/sigmoid核函式) (預設類別數目的倒數)

-r coef0:核函式中的coef0設定(針對多項式/sigmoid核函式)((預設0)

7)svmpredict函式引數說明

svmpredict函式返回三個值:

predict_label,是訓練集**得到的label向量。

accuracy,是乙個3維的向量,從上到下分別是:分類準率(分類問題中用到的引數指標);平均平方誤差(mse (mean squared error)) (回歸問題中用到的引數指標);平方相關係數(r2 (squared correlation coefficient))(回歸問題中用到的引數指標)。

輸出是個矩陣,包含著決策值或者是概率估計(當』-b 1』被指定時)。當訓練資料有k類時,決策值矩陣是乙個n行k*(k-1)/2列的矩陣(n為測試資料集個數,k為類別數),而每一行的輸出是k*(k-1)/2個二分類器的結果。當』-b 1』被指定時,概率估計矩陣是乙個n行k類的矩陣(n為測試資料集個數,k為類別數),每一行的輸出是該測試資料屬於每個類的概率。

修改自:

本文出自 「松鼠」 部落格,請務必保留此出處

Libsvm在matlab下的安裝

2 解壓後將整個資料夾加到matlab的current目錄 3 開啟到matlab這個資料夾 4 如果沒有配置matlab的c 編譯器,需要配置一下,matlab自帶的是沒有c 編譯器的,所以沒法編譯libsvm的cpp檔案。根據matlab的版本,選擇好編譯器,怎麼看支援哪些編譯器呢?在選擇編譯器...

在matlab環境下LIBSVM的demo

2 在matlab環境下用mex setup指令,設定matlab預設編譯器,我選擇是vs2010 3 解壓後libsvm後,在ibsvm 3.20 matlab路徑下執行make.m,把c檔案生成mexw64或mexw32,供matlab呼叫 4 現在可以利用libsvm測試,回到上乙個路徑ibs...

LIBSVM在matlab下的使用安裝

3 假設你使用的是64位的作業系統和matlab。此時將libsvm 3.16資料夾下的windows目錄新增到matlab目錄中。即在matlab目錄中新增 c programfiles libsvm 3.16 windows。因為windows下包含了matlab可執行的二進位制檔案libsvm...