⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yxcsvmkernel.m

📁 使用支持向量机实现对数据的分类工作
💻 M
字号:
function K = yxcSVMkernel(a, b, kernel, sigma)
% SVM Kernel function
%
% Author: Xuchen Yao. yaoxuchen@gmail.com
%
% Input:
% a and b each has n1/n2 points, every point is described by dim1/dim2 vectors
% a: n1 x dim1 data
% b: n2 x dim2 data
% kernel: kernel type('linear', 'poly', 'rbf')
% sigma: see Algorithm
%
% Output:
% K: n1 x n2 matrix, of the following kernel function
%
% Algorithm:
% Linear Kernel: K = a * b', sigmal can be empty.
% Ploy Kernel: K = (a * b' + 1).^sigma
% RBF Kernel: K = exp(- || a - b' ||^2 / sigma^2)

[n1, dim1] = size(a);
[n2, dim2] = size(b);

if dim1 ~= dim2
    error('columns of a and b must agree');
end

switch kernel
    case 'linear'
        K = a*b';
    case 'poly'
        K = (a * b' + 1).^sigma;
    case 'rbf'
        [N1, d] = size(a);
        [N2, d] = size(b);
        dist2 = repmat(sum((a.^2)', 1), [N2 1])' + ...
                repmat(sum((b.^2)',1), [N1 1]) - 2*a*(b');
        K = exp(-dist2/(sigma^2));        
    otherwise
        error('kernel type must be specified.');
end

⌨️ 快捷键说明

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