addpath('./helper/'); workdir = './matfiles/'; heat_savedir = [workdir 'heat_kernels_q/']; exp_savedir = [workdir 'experiments/svm/']; experiments = {{'C11'} {'E11'} {'G154'} {'M11'}}; %experiments = {{'C152'} {'E212'} {'GPOL'} {'GDIP'} {'M141'} {'M131'}}; % --- Prep For CV ------------------------------------------------------------- %load([workdir 'topics.mat']); %load([workdir 'member.7k.mat']); %maxNumCachedPerClass = 2500; %numFolds = 40; %numTrainPerClass = 100; %numTestPerClass = 200; % %for ii=1:length(experiments) % c1labels = experiments{ii}; % % class1 will have label '1' while class2 will have label '-1' % [ids trn_samps tst_samps trn_zs tst_zs] = prepOneVsRest( c1labels, topics, member, ... % maxNumCachedPerClass, numFolds, numTrainPerClass, numTestPerClass ); % % % shape c1labels into single string % labels = [c1labels;repmat({'_'},1,length(c1labels)-1) {''}]; % labels = cell2mat(reshape(labels,1,2*numel(c1labels))); % % save([exp_savedir labels 'vsAll.7k.mat'], ... % 'maxNumCachedPerClass','numFolds','numTrainPerClass','numTestPerClass', ... % 'c1labels','ids', 'trn_samps', 'tst_samps', 'trn_zs', 'tst_zs'); %end %clear_except workdir heat_savedir exp_savedir experiments; % --- Perform experiments ----------------------------------------------------- cc=[1.00 0.50 0.25]; tt=[0.96 1.12 1.28 1.44 1.60 1.76]; cut = 2000; for ii=1:length(experiments) c1labels = experiments{ii}; labels = [c1labels;repmat({'_'},1,length(c1labels)-1) {''}]; labels = cell2mat(reshape(labels,1,2*numel(c1labels))); % retrieve folds and data load([exp_savedir labels 'vsAll.7k.mat']); load([workdir 'tf.7k.mat']); tf = tf(:,ids); % prune unused documents (cols) % prepare for feature selection [df I] = sort(sum(tf,2)); Jsub = I((end-cut+1):end); % jvd: i.e., the words with highest doc freq get removed Jind = sub2ind([size(tf,1) size(tf,1)],Jsub,Jsub); fprintf('%s vs. All\n\tCV translated linear kernel (with feature selection):\n', labels); tacc = zeros(length(cc),length(tt),numFolds); for jj=1:length(cc) c = cc(jj); for kk=1:length(tt) t = tt(kk); H_file = [heat_savedir 'Hc' num2str(100*c) 't' num2str(100*t) '.7k.mat']; fprintf('\t\t%s\n',H_file); load(H_file); % --- Optional Feature selection (on T) --------------------------- H(Jsub,:)=0;H(:,Jsub)=0;H(Jind)=1; T = normalizeRows(H); % jvd: make sure normalize last! % jvd: the linear kernel is simply: B = tf' * T*T' * tf; TAcc = svmCVOneVsRest( trn_samps, tst_samps, trn_zs, tst_zs, tf, ... numFolds, '', 'tranlin', B); tacc(jj,kk,:) = TAcc; end end % --- Standard Linear Kernel ---------------------------------------------- fprintf('CV Linear Kernel\n'); acc = svmCVOneVsRest( trn_samps, tst_samps, trn_zs, tst_zs, tf, ... numFolds, '', 'stndlin'); save([exp_savedir 'acc_' labels '_lin_cut' num2str(cut/1000) 'k.7k.mat'],'cc','tt','cut','acc','tacc'); end