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

📄 kernel.m

📁 各种SVM分类算法
💻 M
字号:
function H = kernel(ker,x1,x2,par)
% 
%------------S200502016  郑黎方-------------------------------
%计算内积函数矩阵.
%  H = kernel(ker,x1,x2,par)
%  输入参数:
%
%              ker: 内积函数形式.
%                  'linear'  - 线形
%                  'poly_h'  - 齐次多项式内积. par 是多项式的次数. 
%                  'poly_i'  - 非齐次多项式内积. par 是多项式的次数.
%                  'rbf'     - 径向基函数内积. par是径向基的宽度(dert^2).
%
%              x1: 输入矩阵,每行表示一个多维向量.
%              x2: 输入矩阵,每行表示一个多维向量.
%              par: 内积函数参数.
%  输出:   
%
%              H: 内积函数矩阵。
%
%
%

  if (nargin < 3) % 核查输入参数的个数
     help kernel
  else

    switch lower(ker)
    case 'linear'
       H = x1*x2';
    case 'poly_h'
       H = (x1*x2').^par;       
    case 'poly_i'
       H = (x1*x2' +1).^par;       
    case 'rbf'
       if(size(x1,2)==1)
          N1=size(x1,1);
          N2=size(x2,1);
          H = zeros(N1,N2);
          for i=1:N1
             H(i,:) = (exp(-(x2-ones(N2,1)*x1(i,:))'.*(x2-ones(N2,1)*x1(i,:))'/(2*par^2)));
          end
       else
          N1=size(x1,1);
          N2=size(x2,1);
          H = zeros(N1,N2);
          for i=1:N1
             H(i,:) = exp(-sum((x2-ones(N2,1)*x1(i,:))'.*(x2-ones(N2,1)*x1(i,:))')/(2*par^2));
          end
       end 
    otherwise
       H = x1*x2';
    end        
 end

⌨️ 快捷键说明

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