dualmax2sparsecovariance.m.svn-base

来自「a function inside machine learning」· SVN-BASE 代码 · 共 39 行

SVN-BASE
39
字号
function b = dualMax2SparseCovariance(K, Kj, Y, Yj)
%A function to compute the maximum 2 sparse covariance vector between matrix
%K and vector y

%We need to go through all combinations of 2 examples, so this might be
%quite slow. 

numExamples = size(K, 1); 
sparsity = 2; 
maxCovariance = -1; 
alpha = 0.001;

b = zeros(numExamples, 1); 
Ky = Kj'*Y;
I = alpha*eye(sparsity, sparsity); 

KySub = zeros(sparsity, 1); 
KSub = zeros(sparsity, sparsity); 

for i=1:numExamples
    for j=i+1:numExamples 
        
        KySub = Ky([i, j]); 
        KSub = K([i, j], [i, j]); 
        
        bSub = (KSub+I)\KySub;
        bSub = bSub/sqrt(bSub'*KSub*bSub);
        
        covariance = bSub'*KySub; 
        
        if covariance > maxCovariance 
            b = zeros(numExamples, 1); 
            b([i, j]) = bSub; 
            maxCovariance = covariance; 
        end  
    end 
end 

maxCovariance;

⌨️ 快捷键说明

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