www.gusucode.com > classification_matlab_toolbox分类方法工具箱源码程序 > code/Classification_toolbox/Chernoff.m
function Perror = Chernoff(mu1, sigma1, mu2, sigma2, p1) % Find the Chernoff bound given means and covariances of single gaussian distributions % Inputs: % mu1 - Mean for class 1 % sigma1 - Covariance matrix for class 1 % mu2 - Mean for class 2 % sigma2 - Covariance matrix for class 2 % p1 - Probability of class 1 % % Outputs % Perror - Error bound beta = linspace(0,1,100); k = zeros(1,length(beta)); %First, claculate k(beta) for i = 1:length(beta), k(i) = beta(i)*(1-beta(i))/2*(mu2-mu1)*inv(beta(i)*sigma1+(1-beta(i))*sigma2)*(mu2-mu1)'+... 1/2*log(det(beta(i)*sigma1+(1-beta(i))*sigma2)/(det(sigma1)^beta(i)*det(sigma2)^(1-beta(i)))); end %Find the minimum of exp(-k) [m, index] = min(exp(-k)); min_beta = beta(index); Perror = p1^min_beta*(1-p1)^(1-min_beta)*exp(-k(index));