Topic : « Ce programme de Bayes / 20 »

Avatar de Pucelle Pucelle
function [confu,sys] = baba(data_c,data_ct,col)
%BABA est la fonction pour l'utilisation de bayes normal.
% data_c represente la matrice d'apprentissage
% data_ct represente la matrice à tester

idx_v = find(data_c(:,2)==2);
idx_f = find(data_c(:,2)==1);
%% variable vrai
cov_v = cov(data_c(idx_v,col));
moy_v = mean(data_c(idx_v,col));
inv_v = ((2*pi)^(5/2))*det(cov_v)^(1/2);

%% variable faux
cov_f = cov(data_c(idx_f,col));
moy_f = mean(data_c(idx_f,col));
inv_f = ((2*pi)^(5/2))*det(cov_f)^(1/2);

for i = 1:length(data_ct)
exp_v = -(1/2)*(data_ct(i,col)'-moy_v')'*inv(cov_v)*(data_ct(i,col)'-moy_v');
pXw2(i) = inv(inv_v)*exp(exp_v);
exp_f = -(1/2)*(data_ct(i,col)'-moy_f')'*inv(cov_f)*(data_ct(i,col)'-moy_f');
pXw1(i) = inv(inv_f)*exp(exp_f);
pW2x(i) = pXw2(i)*0.5/(pXw2(i)*0.5+pXw1(i)*0.5);
pW1x(i) = pXw1(i)*0.5/(pXw2(i)*0.5+pXw1(i)*0.5);
if pW1x(i) > pW2x(i)
sys(i) = 1; % 1 = erreur ; 2 = bon
else
sys(i) = 2; % 1 = erreur ; 2 = bon
end
end

car = data_ct(:,2);

D=[sys',car];
li = 0;
confu = [0 0;0 0];
ooo = sys;
for car = [1,2]
li = li + 1;
co = 0;
for sys = [1,2]
co = co + 1;
confu(li,co) = sum((D(:,1)==sys)&(D(:,2)==car));
end
end
sys = ooo;
end

qu'en pense l'élite ? des moyens d'opti ?
Liste des sujets