matlab下libSVM的用法

2021-07-09 08:18:14 字數 762 閱讀 3793

%% 自定義的三個向量

x=[3 3;4 3; 1 1];

y=[1;1;-1];

[m,n]=size(x);

hold on;

axis([0 5 0 4]); % axis([xmin,xmax,ymin,ymax])

set(gca,'xtick',[0:1:5]) %改變x軸座標間隔顯示

for i=1:m

if y(i)==1

plot(x(i,1),x(i,2),'+');

else

plot(x(i,1),x(i,2),'o');

endend

%% 用libsvm訓練樣本,並進行正確率分析

model = svmtrain(y, x,'-s 0 -t 0'); %訓練svm模型

[predict_label]=svmpredict(y,x,model);%用訓練好的svm模型,**資料

經過svmtrain後,得到svm的模型model。這個模型的幾個主要引數及意義:

rho:表示截距b,符號與一般教材上的公式相反。

sv_indices:表示求得的支援向量的索引

sv_coef:表示對應支援向量的係數ai,而且這些係數是已經和對應的標籤相乘過的。

svs:表示具體的支援向量

有了這些資訊後,可自行做**(當然直接用svmpredict更簡單)

做線性**時,假設查詢點為x,**結果=sum(ai*xi.*x)-rho,而不是sum(ai*yi*xi.*x)-rho

MATLAB下使用libsvm (三)

編寫程式的基本步驟 1 將資料中心化,是每一組特徵中心化,而不是每個樣本的資料中心化哦。原因就是之後要進行pca降維,這個過程之前如果不將資料中心化,那麼之後測試資料集對映出來的點就不對啦 具體看圖啦 至於是否要歸一化,這個並不是必要的步驟,所以看心情咯 2 pca降維,這個最好是以矩陣短的那一邊進...

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...