function [trueProb] = trueProbability(distrib, inputsDistrib) % Calculates the true probability distribution of a given data distribution % Inputs: % 1. distrib: The name of the distribution % 2. inputsDistrib: Inputs to the distribution % Outputs: % 1. trueProb1: a vector where trueProb(i) = true probability that feature i % = 1. switch(distrib) case 'mean' mean1 = inputsDistrib(1,:); p1 = inputsDistrib(2,:); dim = length(mean1); for i=1:dim if(mean1(i) == 1) trueProb(i) = 1-p1(i); else trueProb(i) = p1(i); end end case 'mutEx' dim = inputsDistrib(1); p = inputsDistrib(2); for i= 1:dim % if rand number > 0.5, trueProb(i) = p % otherwise trueProb(i) = 0 tmp = rand(); if(tmp >= 0.5) trueProb(i) = p; else trueProb(i) = 0; end end case 'exp' dim = inputsDistrib(1); gamma = inputsDistrib(2); lambda = inputsDistrib(3); for i= 1:dim trueProb(i) = gamma * exp(-lambda * i); end case 'zipf' dim = inputsDistrib(1); s = inputsDistrib(2); har = 0; for n= 1:dim har = har + 1/(n.^s); end for i= 1:dim trueProb(i) = (1/(i.^s)) ./har; end end