%-------------------------------------------------------------------------- % ENSEEIHT - 1SN - Analyse de données % TP3 - Classification bayésienne % exercice_3.m %-------------------------------------------------------------------------- clear close all clc % Chargement des données de l'exercice 2 load resultats_ex2 %% Classifieur par maximum de vraisemblance % code_classe est la matrice contenant des 1 pour les chrysanthemes % 2 pour les oeillets % 3 pour les pensees % l'attribution de 1,2 ou 3 correspond au maximum des trois vraisemblances V_full = cat(3, V_chrysanthemes, V_oeillets, V_pensees); [~, code_classe] = max(V_full, [], 3); %% Affichage des classes figure('Name','Classification par maximum de vraisemblance',... 'Position',[0.25*L,0.1*H,0.5*L,0.8*H]) axis equal ij axis([r(1) r(end) v(1) v(end)]); hold on imagesc(r,v,code_classe) carte_couleurs = [.45 .45 .65 ; .45 .65 .45 ; .65 .45 .45]; colormap(carte_couleurs) hx = xlabel('$\overline{r}$','FontSize',20); set(hx,'Interpreter','Latex') hy = ylabel('$\bar{v}$','FontSize',20); set(hy,'Interpreter','Latex') view(-90,90) plot(X_oeillets(:,1),X_oeillets(:,2),'go','MarkerSize',10,'LineWidth',2); plot(X_chrysanthemes(:,1),X_chrysanthemes(:,2),'b+','MarkerSize',10,'LineWidth',2); plot(X_pensees(:,1),X_pensees(:,2),'r*','MarkerSize',10,'LineWidth',2); %% Comptage des images correctement classées p_c = 0.0; p_o = &; p_p = 0.0; V_c_c = p_c * vraisemblance(X_chrysanthemes(:,1), X_chrysanthemes(:,2), mu_chrysanthemes, Sigma_chrysanthemes, denominateur_classe_chrysanthemes); V_c_o = p_o * vraisemblance(X_chrysanthemes(:,1), X_chrysanthemes(:,2), mu_oeillets, Sigma_oeillets, denominateur_classe_chrysanthemes); V_c_p = p_p * vraisemblance(X_chrysanthemes(:,1), X_chrysanthemes(:,2), mu_pensees, Sigma_pensees, denominateur_classe_chrysanthemes); V_o_c = p_c * vraisemblance(X_oeillets(:,1), X_oeillets(:,2), mu_chrysanthemes, Sigma_chrysanthemes, denominateur_classe_oeillets); V_o_o = p_o * vraisemblance(X_oeillets(:,1), X_oeillets(:,2), mu_oeillets, Sigma_oeillets, denominateur_classe_oeillets); V_o_p = p_p * vraisemblance(X_oeillets(:,1), X_oeillets(:,2), mu_pensees, Sigma_pensees, denominateur_classe_oeillets); V_p_c = p_c * vraisemblance(X_pensees(:,1), X_pensees(:,2), mu_chrysanthemes, Sigma_chrysanthemes, denominateur_classe_pensees); V_p_o = p_o * vraisemblance(X_pensees(:,1), X_pensees(:,2), mu_oeillets, Sigma_oeillets, denominateur_classe_pensees); V_p_p = p_p * vraisemblance(X_pensees(:,1), X_pensees(:,2), mu_pensees, Sigma_pensees, denominateur_classe_pensees); nb_c = (V_c_c > V_c_o) & (V_c_c > V_c_p); nb_o = (V_o_o > V_o_c) & (V_o_o > V_o_p); nb_p = (V_p_p > V_p_c) & (V_p_p > V_p_o); pourcentage = sum(nb_c + nb_o + nb_p) / 30 * 100