sparsecorrelationstest2.m

来自「a function inside machine learning」· M 代码 · 共 58 行

M
58
字号
%Test the distribution of sparse correlations for sparse KCCA 
clear all; 
dataSet = 'letter-recognition.data';  
[X, y, numExamples, numFeatures] = readCsvData(dataSet); 

%convert to indicator labels 
Y = indicatorVector(y); 
YAll = indicatorVector((1:26)'); 
numLabels = size(Y, 2); 

%Take the first examples 
numExamples = 1500; 
X = X(1:numExamples, :); 
Y = Y(1:numExamples, :); 

X = centerData(X); 
Y = centerData(Y); 

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

KX = X*X'; 
KY = Y*Y'; 
[correlations, bXs, bYs] = sparseCorrelations(KX, KX, KY, KY, 1:numExamples, 1:numExamples); 

%The maximum sparse correlation 
maxSparseCorrelation = max(max(abs(correlations)))

%The maximum non-sparse correlation 
[u, v] = maxCanonicalCorrelation(X, Y); 
maxCorrelation = correlation(X*u, Y*v)

%Plot histogram of correlations 
hist(abs(correlations));
xlabel('Correlation'); 
ylabel('Frequency'); 

numColumns = (2.^(1:10))'; 
maxSparseCorrelations = ones(length(numColumns), 1); 

for i=1:length(numColumns);

    XCols = randperm(numExamples);
    XCols = XCols(1:numColumns(i));
    YCols = randperm(numExamples);
    YCols = YCols(1:numColumns(i));
    [correlations, bXs, bYs] = sparseCorrelations(KX(:, XCols), KX(:, XCols), KY(:, YCols), KY(:, YCols), XCols, YCols);

    maxSparseCorrelations(i) = max(max(abs(correlations)));
end

figure; 
plot(numColumns, maxSparseCorrelations, 'k'); 
xlabel('Kernel columns'); 
ylabel('Correlations'); 

⌨️ 快捷键说明

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