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

📄 kernel1.m

📁 该工具箱是用于统计模式识别的
💻 M
字号:
function [k] = kernel1(a,b,ker,arg)% function [k] = kernel(a,b,ker,arg)%% KERNEL computes a dot product of the point a and b after%  non-linear mapping of these point. The non-linear mapping%  is determined a argument ker.%% Input:%  a [DxN] N points of dimension D.%  b [DxM] M points of domension D.%  ker [string] is given kernel%       'linear'  - no argument,%       'quad'    - no argument,%       'poly'    - arg(1) is degree of polynomial,%       'rbf'     - arg(1) is sigma,%       'sigmoid' - arg(1) is scale, arg(2) is offset,%       'fourier' - arg(1) is degree,%       'spline'  - no argument.%  arg [1xP] P arguments of the given kernel.%           % Output:%  k [NxM] dot (kernel) product or kernel matrix.%% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz% Written Vojtech Franc (diploma thesis)% Modifications% 14-Nov-2001, V.Franc, returned argument bias removed% 10-apr-2001 V.Franc, fourier, spline and quad (as defined in SH10) %             kernel added% 22-mar-2001 V.Franc, bias indicator added% 26-feb-2001 V.Francn1=size(a,2);n2=size(b,2);if n1 == 1 & n2 == 1,  k = kernel1(a,b,ker,arg );else  k=zeros(n1,n2);    for i=1:n1,    for j=1:n2,      k(i,j)=kernel1(a(:,i),b(:,j),ker,arg );    end  endendreturn;  %------------------------------------------------------function [k] = kernel1(a,b,ker,arg );switch lower(ker)   case 'linear'   k = a'*b;   case 'poly'   k = (a'*b + 1)^arg(1); case 'quad'   k = (a'*b)^2 + a'*b + 1; case 'rbf'     k = exp(-(a-b)'*(a-b)/(2*arg(1)^2));     case 'sigmoid'   k = tanh(arg(1)*a'*b + arg(2)); case 'fourier'   z = sin(arg(1) + 0.5)*2*ones(length(a),1);   i = find(a-b);   z(i) = sin(arg(1)+0.5)*(a(i)-b(i))./sin((a(i)-b(i))/2);   k = prod(z); case 'spline'   z = 1 + a.*b + a.*b.*min(a,b)-((a+b)/2).*(min(a,b)).^2+(1/3)*(min(a,b)).^3;   k = prod(z);endreturn;

⌨️ 快捷键说明

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