addpath('./helper/'); workdir = './matfiles/'; %% --- Initialization ---------------------------------------------------------- %load([workdir 'tc.7k.mat']); %% jvd: NB: empty docs and unused words are removed in shrinkByInfrequent, %% which is used in 1-runme_preprcv1 % --- Estimate the context distribution --------------------------------------- %load([workdir 'tf.7k.mat']); %fprintf('computing Q\n'); %Q=diag(sparse(1./sum(tf,2)))*tf*tf'; %save([workdir 'Q.7k.mat'],'Q'); %%load([workdir 'Q.7k.mat']); % % %% --- Fisher Geodesic Distance (on context distribution) ---------------------- %fprintf('computing D2\n'); %sumsqrtterm = (Q.^.5)*(Q.^.5)'; %sumsqrtterm(sumsqrtterm>1) = 1; %sumsqrtterm(sumsqrtterm<0) = 0; %D2 = acos(sumsqrtterm).^2; %save([workdir 'D2.7k.mat'],'D2'); load([workdir 'D2.7k.mat']); % --- Optional Feature selection (on D) --------------------------------------- % not currently done heat_savedir = [workdir 'heat_kernels_q/']; for c=[1 .50 .25] % --- Create graph -------------------------------------------------------- E = exp(-c * D2); % --- Laplacian ----------------------------------------------------------- deg = diag(sum(E,2)); L = deg-E; % jvd: (Normalized) L = inv(sqrt(deg)) * (L) * inv(sqrt(deg)); % --- Heat kernel --------------------------------------------------------- fprintf('computing heat kernels; c=%f\n',c); H16 = expm(-0.16 * L); H = H16^6; % jvd: t=-0.96 save([heat_savedir 'Hc' num2str(c*100) 't96' '.7k.mat'], 'H'); H = H*H16; % jvd: t=-1.12 save([heat_savedir 'Hc' num2str(c*100) 't112' '.7k.mat'], 'H'); H = H*H16; % jvd: t=-1.28 save([heat_savedir 'Hc' num2str(c*100) 't128' '.7k.mat'], 'H'); H = H*H16; % jvd: t=-1.44 save([heat_savedir 'Hc' num2str(c*100) 't144' '.7k.mat'], 'H'); H = H*H16; % jvd: t=-1.60 save([heat_savedir 'Hc' num2str(c*100) 't160' '.7k.mat'], 'H'); H = H*H16; % jvd: t=-1.76 save([heat_savedir 'Hc' num2str(c*100) 't176' '.7k.mat'], 'H'); end