自定义核函数
使用-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