?? dualgeneralfeaturesapprox2.m.svn-base
字號:
function [testInfo, projectionInfo] = dualGeneralFeaturesApprox2(trainData, testData1, testData2, subspaceInfo, params)
%Approximate a kernel matrix using \tilde{X} = TP' or equivalently
%\tilde{K} = TP'PT'
%We compute the kernel between testData1 and testData2
if (nargin ~= 5)
fprintf('%s\n', help(sprintf('%s', mfilename)));
error('Incorrect number of inputs - see above usage instructions.');
end
%Subspace parameters
[nameX, nameY] = getSpaceNames(params);
T = min(params.iterations, size(subspaceInfo.(nameX).tau, 2));
numTest1Examples = getNumDataExamples(testData1);
numTest2Examples = getNumDataExamples(testData2);
%kernel parameters
kernelFunction = char(params.X.kernel.name);
kernelParams = params.X.kernel.params;
normSqTau = subspaceInfo.(nameX).normSqTau(1:T);
s = subspaceInfo.(nameX).s(:, 1:T);
tau = subspaceInfo.(nameX).tau(:, 1:T);
tic;
[tInfo1, pInfo1] = dualGeneralFeaturesProject(trainData, testData1, subspaceInfo, params);
[tInfo2, pInfo2] = dualGeneralFeaturesProject(trainData, testData2, subspaceInfo, params);
tauHat1 = getDataFieldValue(tInfo1.data, 'X', 1:numTest1Examples, 1:T);
tauHat2 = getDataFieldValue(tInfo2.data, 'X', 1:numTest2Examples, 1:T);
test1Test2K = tauHat1*inv(diag(normSqTau))*tau'*s*tauHat2';
testTime = toc;
testInfo = struct;
testInfo.data = data;
testInfo.data = addDataField(testInfo.data, 'K', test1Test2K, 'kernel');
fprintf('done, took %d seconds.\n', testTime);
projectionInfo = struct;
projectionInfo.testTime = testTime;
projectionInfo.X.tauHat1 = tauHat1;
projectionInfo.X.tauHat2 = tauHat2;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -