diff --git a/src/MATLAB/+NCD/imNCDM.m b/src/MATLAB/+NCD/imNCDM.m index 52d3646a5b6b2bb70902ca9d75c1548ee04fce46..0498b7c14c2fda337209bc7d1b1110c98134a997 100644 --- a/src/MATLAB/+NCD/imNCDM.m +++ b/src/MATLAB/+NCD/imNCDM.m @@ -1,7 +1,7 @@ % NCDM % X is a 1-D cell array of images % eg -% im = rand(100,100); ncd=ncd.imNCDM({im,im}) +% im = rand(100,100); ncd=NCD.imNCDM({im,im}) % function [ncd,GX]= imNCDM(X) ncd=NaN; diff --git a/src/MATLAB/apps/nist digits/Copy_of_getK5k10-15-2021.mat b/src/MATLAB/apps/nist digits/Copy_of_getK5k10-15-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..39581829a8f92ca7554fa5c8d6cf167441e6bfb5 Binary files /dev/null and b/src/MATLAB/apps/nist digits/Copy_of_getK5k10-15-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/fixedCardinality/getKfixed.m b/src/MATLAB/apps/nist digits/fixedCardinality/getKfixed.m new file mode 100644 index 0000000000000000000000000000000000000000..75b7b343d161293cecbda9eb740ac8fcc1eacc50 --- /dev/null +++ b/src/MATLAB/apps/nist digits/fixedCardinality/getKfixed.m @@ -0,0 +1,46 @@ +function [kOD,mx,sd,clusterConfusion]=getKfixed(xDigits,kMax,NUMBER_OF_SAMPLES,clusterConfusion) + +dx=[]; +idx=[]; +idxsp=[]; +kTrue=length(unique([xDigits.idxTrue])); +dDigits=MNISTdistance(xDigits); + +for k=1:kMax + + idxsp=Cluster.SpectralCluster(dDigits,k); + if k==kTrue + clusterConfusion=updateConfusion(xDigits,clusterConfusion,kTrue,kMax,idxsp); + end + + dx(k)=deltaK(xDigits,idxsp); + +end + +% mx=mean(dx,2,'omitnan'); +% mx=min(dx,[],2); + +% sx=sort(dx,2); +% sx=sx(:,1:100); +mx=mean(dx,2,'omitnan'); +sd=std(dx,0,2,'omitnan'); +% account for simulation error, as in gap statistic +sd=sd.*sqrt(1+1/NUMBER_OF_SAMPLES); +kOD=find(mx(1:end-1)-sd(1:end-1)>mx(2:end),1,'first'); + +if ~isempty(kOD) + kOD=kOD+1; +% fprintf(1,'sd :: kOD=%d\n',kOD); +else + deltaMx=diff(mx)'; + kOD=find(deltaMx>0,1,'first'); + if isempty(kOD) + od=max(deltaMx(deltaMx<0)); + kOD=find(deltaMx==od,1,'first'); +% fprintf(1,'max(deltaMX<0) :: kOD=%d\n',kOD); + else +% fprintf(1,'deltaMX>0 :: kOD=%d\n',kOD); + end + +end +4; diff --git a/src/MATLAB/apps/nist digits/fixedCardinality/goNISTkFixed.m b/src/MATLAB/apps/nist digits/fixedCardinality/goNISTkFixed.m new file mode 100644 index 0000000000000000000000000000000000000000..f42cf60e40f5c5cd3d5e83bd433a69c1e7a0feb7 --- /dev/null +++ b/src/MATLAB/apps/nist digits/fixedCardinality/goNISTkFixed.m @@ -0,0 +1,55 @@ + +% outfolder='./results/'; +% if ~exist(outfolder,'dir') +% mkdir(outfolder); +% mkdir(fullfile(outfolder,'true')); +% mkdir(fullfile(outfolder,'false')) +% end +path(path,'..'); +tblResults=table(); +maxDigits=[0,1,2,3,8,9]; +CARDINALITY=10; +clusterConfusion={}; +rgResults=[]; % maxDigit,trial,iteration +kMax=12; +NUMBER_OF_TRIALS=100; +NUMBER_OF_SAMPLES=1000; +p=startParallel(); + +% outname=['getK5k' datestr(now,'mm-dd-yyyy') '.mat'] +NDIGITS=length(maxDigits); +kConfusion=zeros(10,kMax); +for nTrial=1:NUMBER_OF_TRIALS + for d=1:NDIGITS + target=[0:maxDigits(d)]; + K=length(target); + + xDigits=getNISTdigits(target,CARDINALITY); + [kpred,mx,sd,clusterConfusion]=getK(xDigits,kMax,NUMBER_OF_SAMPLES,clusterConfusion); + rgResults(d,nTrial)=kpred; + kConfusion(K,kpred)=kConfusion(K,kpred)+1; +% drawResults(kpred,K,mx,sd,outfolder,nTrial); + 5; + end +% if 0==mod(nTrial,20) +% clusterConfusion; +% kConfusion +% mean(rgResults,2) +% end + 5; +end + toc() + save(outname); + % idxKPred=tblResults.kPred==K; + % idxKGap=tblResults.kGap==K; + % idxKSP=tblResults.kSP==K; + % accPredGapSP=[length(find(idxKPred))/length(idxKPred),length(find(idxKGap))/length(idxKGap)... + % length(find(idxKSP))/length(idxKSP)] + % sciPred=bootci(20000,@mean,idxKPred) + % sciGap=bootci(20000,@mean,idxKGap) + % sciSP=bootci(20000,@mean,idxKSP) + + + + + diff --git a/src/MATLAB/apps/nist digits/getK10k08-04-2021.mat b/src/MATLAB/apps/nist digits/getK10k08-04-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..ef7195c85aad61d29dfbe265287854bd70759e5b Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK10k08-04-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK10k08-24-2021.mat b/src/MATLAB/apps/nist digits/getK10k08-24-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..be642f0aed0739340037438db777ba9f3edf7245 Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK10k08-24-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK10k08-31-2021.mat b/src/MATLAB/apps/nist digits/getK10k08-31-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..3839d69030d1eb126134385540b2e404478a9d83 Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK10k08-31-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k09-06-2021.mat b/src/MATLAB/apps/nist digits/getK5k09-06-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..4656b786ea3418663f3a5f50b0d5aaef91c2f90a Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k09-06-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k09-16-2021.mat b/src/MATLAB/apps/nist digits/getK5k09-16-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..14d524886d0d4f84461aa16c411a51931ecd0c1c Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k09-16-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k09-17-2021.mat b/src/MATLAB/apps/nist digits/getK5k09-17-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..bc7df1dd9d1d83d26fdde2b0cf68a684258fa2cf Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k09-17-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k09-18-2021.mat b/src/MATLAB/apps/nist digits/getK5k09-18-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..c76dd9a3504733ef35b0b6066fc9ddbf51b33c7b Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k09-18-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k09-24-2021.mat b/src/MATLAB/apps/nist digits/getK5k09-24-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..75f6282304ae630623d309d86b4b4813a3eed0ad Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k09-24-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k10-15-2021.mat b/src/MATLAB/apps/nist digits/getK5k10-15-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..39581829a8f92ca7554fa5c8d6cf167441e6bfb5 Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k10-15-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/getK5k10-29-2021.mat b/src/MATLAB/apps/nist digits/getK5k10-29-2021.mat new file mode 100644 index 0000000000000000000000000000000000000000..8a146d0749b191514faa14fd424462052af4c8ba Binary files /dev/null and b/src/MATLAB/apps/nist digits/getK5k10-29-2021.mat differ diff --git a/src/MATLAB/apps/nist digits/kTrials results 7 1 2021.txt b/src/MATLAB/apps/nist digits/kTrials results 7 1 2021.txt new file mode 100644 index 0000000000000000000000000000000000000000..a55a6dd5156be6f50b7488b7c996012d84323df3 --- /dev/null +++ b/src/MATLAB/apps/nist digits/kTrials results 7 1 2021.txt @@ -0,0 +1,8 @@ +mod5 +[0:1] 0.86 + +mod4 +[0:1] 0.99 +[0:2] 0.94 [3.155;3.222] +[0:8] 0.97 +[0:9] 0.96 diff --git a/src/MATLAB/apps/nist digits/nist10.mat b/src/MATLAB/apps/nist digits/nist10.mat new file mode 100644 index 0000000000000000000000000000000000000000..a1cd0986f293cdf74579afd2281dd302a9c75116 Binary files /dev/null and b/src/MATLAB/apps/nist digits/nist10.mat differ diff --git a/src/MATLAB/apps/nist digits/postProcessNistK.m b/src/MATLAB/apps/nist digits/postProcessNistK.m new file mode 100644 index 0000000000000000000000000000000000000000..b01a7e2103d45cef178762f6ea6ccfba71d00c0c --- /dev/null +++ b/src/MATLAB/apps/nist digits/postProcessNistK.m @@ -0,0 +1,14 @@ +load 'getK5k10-15-2021.mat' + +truncResults=[]; +for i=1:100 + rg2=rgResults(:,(i-1)*50+1:i*50); + truncResults(:,i)=mean(abs(rg2),2,'omitnan'); +end + +bootci(20000,@mean,truncResults') +% length(find(tr2(2,:)==2)) +% length(find(tr2(3,:)==3)) +% length(find(tr2(4,:)==4)) +% length(find(tr2(5,:)==9)) +% length(find(tr2(6,:)==10)) \ No newline at end of file diff --git a/src/MATLAB/apps/nist digits/supervised/digitsTraining2k.mat b/src/MATLAB/apps/nist digits/supervised/digitsTraining2k.mat index 0de054aa61e9232bfab5ef4164b36968bcc27fda..07d113f47417e9989c71a890dec153b99c12d627 100644 --- a/src/MATLAB/apps/nist digits/supervised/digitsTraining2k.mat +++ b/src/MATLAB/apps/nist digits/supervised/digitsTraining2k.mat @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd4670a8de1a4e571b11c39ef283d84b936903a513114c107a0b48abfddd3d79 -size 95578 +oid sha256:567e4c57c3a6aab22decc58d14a561334de4ad67fd27f63fa0a7005285d02f40 +size 63913 diff --git a/src/MATLAB/apps/nist digits/supervised/digitsTraining2k9.mat b/src/MATLAB/apps/nist digits/supervised/digitsTraining2k9.mat new file mode 100644 index 0000000000000000000000000000000000000000..24c7348fa21a29c6f714f778df2fd468f64c3cbd Binary files /dev/null and b/src/MATLAB/apps/nist digits/supervised/digitsTraining2k9.mat differ