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

📄 dualgreedypcatest.m.svn-base

📁 a function inside machine learning
💻 SVN-BASE
字号:
% A script to test dualGreedyPCATrain 
clear; 
rand('state',21); 

tol = 10^-7; 
numExamples = 15; 
numFeatures = 10; 
X = rand(numExamples, numFeatures); 


d = data; 
d = addDataField(d, 'X', X, 'examples'); 

[trainData, testData] = splitData2(d, 2/3); 

T = 7;
params.iterations = T; 
params.X.kernel = getDefaultLinearKernel; 

[subspaceInfo, trainInfo] = dualGreedyPCATrain(trainData, params); 
[testInfo, projectionInfo] = dualGreedyPCAProject(trainData, testData, subspaceInfo, params); 

%This should give 1's on the diagonal if normalised correctly 
if norm(diag(subspaceInfo.b'*subspaceInfo.tau) - ones(T, 1)) > tol 
    error('Dual projections are not normalised correctly'); 
end 

%Should give the primal projection direction in linear kernel case
u = inv(getDataFieldValue(trainData, 'X')'*getDataFieldValue(trainData, 'X'))*getDataFieldValue(trainData, 'X')'*subspaceInfo.tau; 

if norm(u'*u - eye(T, T)) > tol
    error('Primal projection directions are not correct');
end

%Compare against craigs version, for luck 
trainK = getDataFieldValue(trainData, 'X')*getDataFieldValue(trainData, 'X')';  
[p,pcaind,pcanorm] = greedyPCA(trainK, T);
[indices, elements] = findNonZeroElements(subspaceInfo.b);

if norm(indices - pcaind) > tol 
    error('Chosen dual directions are incorrect'); 
end 

%Now compare projections on test set to craigs 
testTrainK = getDataFieldValue(testData, 'X')*getDataFieldValue(trainData, 'X')';  
[newTestX] = getProjections(p, testTrainK); 

if norm(newTestX - getDataFieldValue(testInfo.data, 'X')) > tol 
    error('Prediction on the test set do not match with craigs'); 
end 

%Check the prediction on the test set are correct 
[subspaceInfo, trainInfo] = dualGreedyPCATrain(trainData, params); 
[testInfo, projectionInfo] = dualGreedyPCAProject(trainData, trainData, subspaceInfo, params); 

if norm(getDataFieldValue(trainInfo.data, 'X') - getDataFieldValue(testInfo.data, 'X')) > tol 
    error('Prediction on training set do not match when same dataset is used for testing'); 
end 



⌨️ 快捷键说明

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