Skip to content
Snippets Groups Projects
Commit d9ca0346 authored by ac_fx's avatar ac_fx
Browse files

SSF.csf_spatial compute CSF in R^K w/ groundtruth

parent 1e9c2a94
No related branches found
No related tags found
No related merge requests found
function [csf_mean,csf_std] = csf_spatial(Y,idxTrue)
K = length(unique(idxTrue));
mcdf = [];
scdf = [];
for ik=1:K
idxk=find(idxTrue==ik);
yk=Y(idxk,:);
[dk,sk] = CSF.od2d(yk);
mcdf(ik)=dk;
scdf(ik)=sk;
end
csf_mean = mean(mcdf);
csf_std = std(mcdf);
4;
\ No newline at end of file
function [dk,sk] = od2d(xk)
cx = repmat(mean(xk),size(xk,1),1);
dd = vecnorm(cx - xk, 2, 2);
% dd = sqrt( (cx(:,1)-xk(:,1)).^2 + (cx(:,2)-xk(:,2)).^2 );
idx=find( abs(dd-mean(dd))<std(dd));
dd = dd(idx);
dk = mean(dd) + log2(length(idx))/length(idx);
sk = std(dd);
4;
% KX = NCD.Press(xk,[]);
% dx = pdist2(xk,xk);
%
% dk = KX - kx + log2(length(xk));
% dx = pdist(xk);
% dk = max(dx) - min(dx);
% sk = norm(std(xk));
% xx = (xk - mean(xk)) ./ std(xk);
% [h,p] = kstest(xx);
% dk = 1-p;
\ No newline at end of file
function mu=pmean(x)
if length(x)<3
mu=mean(x);
return;
end
idx=find( abs(x-mean(x))<std(x));
mu=mean(x(idx));
\ No newline at end of file
......@@ -54,11 +54,11 @@
function [idx,Y]= SpectralCluster(A,k)
NREP=50;
if (1==k)
idx=ones(size(A,2),1);
Y = []; % ack TODO need Y for 1?
return;
end
% if (1==k)
% idx=ones(size(A,2),1);
% Y = []; % ack TODO need Y for 1?
% return;
% end
for i=1:size(A,1)
D(i,i)=sum(A(i,:));
end
......@@ -69,10 +69,13 @@ L=Cluster.Regularize(L); % remove the miniscule asymmetry from L
[eVec eVal]=eig(L);
X=[eVec(:,end) eVec(:,1:k-1)];
if 1 == k
Y = X ./ max(X);
else
for i=1:size(X,1)
Y(i,:)=X(i,:)./norm(X(i,:));
end
end
idx=kmeans(Y,k,'emptyaction','singleton','replicates',NREP);
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment