📄 dualgreedygstest2.m
字号:
%A script to test gram schmidt, to see if we compute new features as Xhat =
%K*A for some A
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 = 5;
params.iterations = T;
params.X.kernel = getDefaultLinearKernel;
[subspaceInfo, trainInfo] = dualGreedyGSTrain(trainData, params);
[testInfo, projectionInfo] = dualGreedyGSProject(trainData, testData, subspaceInfo, params);
trainX = getDataFieldValue(trainData, 'X');
testX = getDataFieldValue(testData, 'X');
newTrainX = getDataFieldValue(trainInfo.data, 'X');
newTestX = getDataFieldValue(testInfo.data, 'X');
A = subspaceInfo.X.b;
for i=1:T
a = A(:, i);
for j=i-1:-1:1
a = a - subspaceInfo.X.b(:, j)*subspaceInfo.X.tau(:, j)'*a/(subspaceInfo.X.tau(:, j)'*subspaceInfo.X.b(:, j));
end
A(:, i) = a;
end
newTrainX2 = trainX*trainX'*A;
newTestX2 = testX*trainX'*A;
if norm(newTrainX2 - newTrainX) > tol | norm(newTestX2 - newTestX) > tol
error('Deflation method does not work');
end
%It works!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -