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

📄 dualgeneralfeaturesapprox2.m.svn-base

📁 a function inside machine learning
💻 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 + -