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

📄 kernel_matrix.m

📁 最小二乘支持向量机的matlab工具包
💻 M
字号:
function omega = kernel_matrix(Xtrain,kernel_type, kernel_pars,Xt)% Construct the positive (semi-) definite and symmetric kernel matrix% % >> Omega = kernel_matrix(X, kernel_fct, sig2)% % This matrix should be positive definite if the kernel function% satisfies the Mercer condition. Construct the kernel values for% all test data points in the rows of Xt, relative to the points of X.% % >> Omega_Xt = kernel_matrix(X, kernel_fct, sig2, Xt)% %% Full syntax% % >> Omega = kernel_matrix(X, kernel_fct, sig2)% >> Omega = kernel_matrix(X, kernel_fct, sig2, Xt)% % Outputs    %   Omega  : N x N (N x Nt) kernel matrix% Inputs    %   X      : N x d matrix with the inputs of the training data%   kernel : Kernel type (by default 'RBF_kernel')%   sig2   : Kernel parameter (bandwidth in the case of the 'RBF_kernel')%   Xt(*)  : Nt x d matrix with the inputs of the test data% % See also:%  RBF_kernel, lin_kernel, kpca, trainlssvm, kentropy% Copyright (c) 2002,  KULeuven-ESAT-SCD, License & help @ http://www.esat.kuleuven.ac.be/sista/lssvmlabnb_data = size(Xtrain,1);if nb_data> 3000,  error(' Too memory intensive, the kernel matrix is restricted to size 3000 x 3000 ');end%if size(Xtrain,1)<size(Xtrain,2),%  warning('dimension of datapoints larger than number of datapoints?');%endif strcmp(kernel_type,'RBF_kernel'),  if nargin<4,        XXh = sum(Xtrain.^2,2)*ones(1,nb_data);    omega = XXh+XXh'-2*Xtrain*Xtrain';    omega = exp(-omega./kernel_pars(1));  else    XXh1 = sum(Xtrain.^2,2)*ones(1,size(Xt,1));    XXh2 = sum(Xt.^2,2)*ones(1,nb_data);    omega = XXh1+XXh2' - 2*Xtrain*Xt';    omega = exp(-omega./kernel_pars(1));  end    else    if nargin<4,    omega = zeros(nb_data,nb_data);    for i=1:nb_data,      omega(i:end,i) = feval(kernel_type,  Xtrain(i,:), Xtrain(i:end,:),kernel_pars);      omega(i,i:end) = omega(i:end,i)';    end      else    if size(Xt,2)~=size(Xtrain,2),      error('dimension test data not equal to dimension traindata;');    end    omega = zeros(nb_data, size(Xt,1));    for i=1:size(Xt,1),      omega(:,i) = feval(kernel_type,  Xt(i,:), Xtrain, kernel_pars);    end  endend

⌨️ 快捷键说明

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