LIBSVM中如何自定義核函式

2021-09-09 05:31:08 字數 694 閱讀 1916

自定義核函式

使用-t 4引數時,可以使用自定義核函式,根據自定義核函式求出核矩陣,自定義核函式使用方法如下:

比如線性核函式 是 k(u,v)=u』*v,設訓練集是train_data,設訓練集有150個樣本 , 測試集是test_data,設測試集有120個樣本,則

訓練集的核矩陣: ktrain = train_data*train_data』

測試集的核矩陣: ktest = test_data*train_data』

想要使用-t 4引數還需要把樣本的序列號放在核矩陣前面 ,形成乙個新的矩陣:

使用線性核函式 k(u,v) = (u』 * v)

ktrain = train_data * train_data』; %求訓練集核矩陣

ktrain = [(1:150)』,ktrain]; %樣本的序列號放在核矩陣前面

model = svmtrain(train_label, ktrain, 『-t 4』); % 輸入 ktrain

ktest = test_data*train_data』; %求測試集核矩陣

ktest = [(1:120)』, ktest]; %樣本的序列號放在核矩陣前面

[predict_label, accuracy, p1] = svmpredict(test_label,ktest,model); % 輸入ktest

LIBSVM使用與自定義核函式

libsvm訓練函式使用如下 model svmtrain trainlabel,traindata,s 0 t 2 c 1.2 g 2.8 trainlabel 訓練樣本標籤 traindata 訓練樣本資料集,行向量為樣本值 svm型別,用引數 s 設定,預設值為0,可選型別有 0 c svc ...

LIBSVM使用與自定義核函式

一 libsvm訓練函式使用如下 1 model svmtrain trainlabel,traindata,s 0 t 2 c 1.2 g 2.8 trainlabel 訓練樣本標籤 traindata 訓練樣本資料集,行向量為樣本值 1 引數 s,表示svm型別,預設值為0,可選型別有 0 c ...

自定義徑向基核函式

根據公式 在自定義svm的徑向基核函式時,需要描述其核矩陣,如下所示 function kernel matrix rbf kernel x1,x2,gamma 在訓練時,x1,x2均為訓練集,x1為測試樣本,即在 時,x1為測試集,x2為支援向量訓練集 len1 size x1,1 測試集樣本數 ...