📄 dualpcatrain.m.svn-base
字号:
function [subspaceInfo, trainInfo] = dualPCATrain(trainData, params)
%Train KPCA
if (nargin ~= 2)
fprintf('%s\n', help(sprintf('%s', mfilename)));
error('Incorrect number of inputs - see above usage instructions.');
end
[nameX, nameY] = getSpaceNames(params);
[numTrainExamples, numFeatures] = getDataFieldSize(trainData, nameX);
%Store parameters
T = params.iterations;
kernelFunction = char(params.X.kernel.name);
kernelParams = params.X.kernel.params;
trainK = full(feval(kernelFunction, getDataFieldValue(trainData, nameX), getDataFieldValue(trainData, nameX), kernelParams));
T = min(T, rank(trainK));
OPTS.disp = 0;
%Do the training
tic
[B, D] = eigs(trainK, T, 'LM', OPTS);
trainTime = toc;
D2 = diag(diag(D).^(-1/2));
trainInfo.data = data;
trainInfo.data = addDataField(trainInfo.data, 'X', trainK*B*D2, 'examples');
subspaceInfo.trainTime = trainTime;
subspaceInfo.B = B*D2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -