kernel.m

来自「核方法&svm是模式识别是很重要的方法」· M 代码 · 共 30 行

M
30
字号
function mat_kernel=Kernel(mat_train,mat_test,kernelType,kPara)
% input parameters:
% mat_train---the train data, a row represents a sample
% mat_test---- the test data, a row represents a sample
% kernelType-- the kernel type
% kPara------- the kernel parameter(s)
% output parameter:
% mat_kernel-- the kernel matrix

% Written by WangZhe on 2004-09-27. 

switch lower(kernelType)
    case 'linear'
        mat_kernel=mat_train*mat_test';
    case 'poly'
        mat_kernel=(mat_train*mat_test'+1).^kPara;
    case 'rbf'
        TrainSampleNum=size(mat_train,1);
        TestSampleNum=size(mat_test,1);
        mat_temp=sum(mat_train.^2,2)*ones(1,TestSampleNum)...
                +ones(TrainSampleNum,1)*sum(mat_test.^2,2)'...
                -2*mat_train*mat_test';
        mat_kernel=exp(-mat_temp/(kPara^2));
    case 'sigmoid'
        mat_kernel=tan(kPara(1)*mat_train*mat_test'/256-kPara(2));        
    case 'exp'
        mat_kernel=(1+exp(kPara*mat_train*mat_test')).^(-1);
    otherwise 
        mat_kernel=mat_train*mat_test';
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?