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

📄 dualpca2.m.svn-base

📁 a function inside machine learning
💻 SVN-BASE
字号:
function [newTrainX, newTestX, subspaceInfo] = dualPCA2(trainX, trainY, testX, params)
%Perform kernel KPCA on a dataset. Should use less memory for large test sets  

if (nargin ~= 4)
    fprintf('%s\n', help(sprintf('%s', mfilename)));
    error('Incorrect number of inputs - see above usage instructions.');
end

numTrainExamples = size(trainX, 1); 
numTestExamples = size(testX, 1); 
numFeatures = size(trainX, 2); 

%Store parameters
T = params.iterations; 
chunkSize = params.chunkSize;  %Process the test set in chunks
kernelFunction = char(params.kernelFunctionName); 
kernelParams = params; 

numTestChunks = ceil(numTestExamples/chunkSize); 

trainK = feval(kernelFunction, trainX, trainX, kernelParams);
T = min(T, rank(trainK)); 

%Do the training 
tic
[B, D] = eigs(trainK, T);
trainTime = toc; 

D2 = diag(diag(D).^(-1/2));

newTrainX = trainK*B*D2; 

tic; 
newTestX = zeros(numTestExamples, T); 

for i=1:numTestChunks 
    startExample = (i-1)*chunkSize+1; 
    endExample = min(i*chunkSize, numTestExamples); 
    
    tempTestTrainK = feval(kernelFunction, testX(startExample:endExample, :), trainX, kernelParams);

    newTestX(startExample:endExample, :) = tempTestTrainK*B*D2; 
end 
testTime = toc; 

subspaceInfo = struct; 
subspaceInfo.trainTime = trainTime; 
subspaceInfo.testTime = testTime; 
%subspaceInfo.D = D; 
%subspaceInfo.B = B; 

⌨️ 快捷键说明

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