Vous êtes sur la page 1sur 8

Analyse d'ensemble de donnes d'iris

Ralis par
Sofiene guedri
Encadr par
Mr Anouar Ben Khalifa

Anne universitaire 2017-2018

1
Rapport de problme

La base de donnes de l'iris de Fisher (Fisher, 1936) est peut-tre la


base de donnes la plus connue trouver dans la littrature de
reconnaissance des formes. L'ensemble de donnes contient 3 classes
de 50 cas chacune, o chaque classe se rapporte un type de centrale
d'iris. Une classe est linairement sparable des autres deux ; ce dernier
ne sont pas linairement sparables entre eux.

La base de donnes contient les attributs suivants :

1. longueur de spale en cm.

2. largeur de spale en cm.

3. longueur de ptale en cm.

4. largeur de ptale en cm.

5. classe :

Iris Setosa

Iris Versicolour

Iris Virginica

La base de donnes de l'iris de Fisher est procurable dans Matlab. Le


but de ce projet est d'expliquer le procd d'tablir un classificateur bas
par rseau neuronal qui rsout le problme d'analyse. Pendant le divers
rseau neuronal de confrence bas des approches seront montres, le
procd d'tablir de diverses architectures de rseau neuronal sera
expliqu, et finalement des rsultats d'analyse seront prsents
moyennant les RNs modulaires (1 rseaux pour chaque espce de
fleurs) de type MLP avec apprentissage par rtropropagation. La figure I
donne l'architecture du rseau.

Nbre de neurones de la couche cache = 1.

Nombre d'entres= 4

Constante d'apprentissage= 0.9.

2
Nombre de sorties= 1.

Fonction d'erreur= mse.

Type de la fonction d'activation= Sigmode.

Signal d'erreur= 0.01.

Nbre de vrais exemplaires = 20

Nombre maximal d'itrations = 10.

Nbre de faux exemplaires = 20

Figure 1:Apprentissage de rseau de neurones


On constate que le MSE(Mean Square Error) diminue lorsque le nombre
ditrations augmente.

3
Figure 2:Calcul de MSE
Le gradient diminue et atteint 0,0018

Mu=1

Validation=0

4
Figure 3:Les paramtres en fonction de nombre d'itrations
La relation entre les valeurs de test et de sortie est prsente par la
figure suivante.

5
Figure 4:Courbe de classification
Code Source :

Tout =[
5.1 3.5 1.4 0.2 7.0 3.2 4.7 1.4 6.3 3.3 6.0 2.5 ;
4.9 3.0 1.4 0.2 6.4 3.2 4.5 1.5 5.8 2.7 5.1 1.9 ;
4.7 3.2 3.1 0.2 6.9 3.1 4.9 1.5 7.1 3.0 5.9 2.1 ;
4.6 3.1 1.5 0.2 5.5 2.3 4.0 1.3 6.3 2.9 5.6 1.8 ;
5.0 3.6 1.9 0.2 5.6 2.8 4.6 1.5 6.5 3.0 5.8 2.2 ;
5.4 3.9 1.7 0.4 5.7 2.8 4.5 1.3 6.7 3.0 6.6 2.1 ;
4.6 3.4 1.4 0.3 6.3 3.3 4.7 1.6 4.9 2.5 4.5 1.7 ;
5.0 3.4 1.5 0.2 4.9 2.5 3.3 1.0 7.3 2.9 6.3 1.8 ;
4.4 2.9 1.4 0.2 6.6 2.9 4.6 1.3 6.7 2.5 5.8 1.8 ;
4.9 3.1 1.5 0.1 5.2 2.7 3.9 1.4 7.2 3.6 6.1 2.5 ;
5.4 3.7 1.5 0.2 5.0 2.0 3.5 1.0 6.5 3.2 5.1 2.0 ;
4.8 3.4 1.6 0.2 5.9 3.0 4.2 1.5 6.4 2.7 5.3 1.9 ;
4.8 3.0 1.4 0.1 6.0 2.2 4.0 1.0 6.8 3.0 5.5 2.1 ;
4.3 3.0 1.1 0.1 6.1 2.9 4.7 1.4 5.7 2.5 5.0 2.0 ;
5.8 4.0 1.2 0.2 5.6 2.9 3.6 1.3 5.8 2.8 5.1 2.4;
5.7 4.4 1.5 0.4 6.7 3.1 4.4 1.4 6.4 3.2 5.3 2.3;
5.4 3.9 1.3 0.4 5.6 3.0 4.5 1.5 6.5 3.0 5.5 1.8;
5.1 3.5 1.4 0.3 5.8 2.7 4.1 1.0 7.7 3.8 6.7 2.2;
5.7 3.8 1.7 0.3 6.2 2.2 4.5 1.5 7.7 2.6 6.9 2.3;
5.1 3.8 1.5 0.3 5.6 2.5 3.9 1.1 6.0 2.2 5.6 1.5;
5.4 3.4 1.7 0.2 5.9 3.2 4.8 1.8 6.9 3.2 5.7 2.3;
5.1 3.7 1.5 0.4 6.1 2.8 4.0 1.3 5.6 2.8 4.9 2.0 ;

6
4.6 3.6 1.0 0.2 6.3 2.5 4.9 1.5 7.7 2.8 6.7 2.0 ;
5.1 3.3 1.7 0.5 6.1 2.8 4.7 1.2 6.3 2.7 4.9 1.8 ;
4.8 3.4 1.9 0.2 6.4 3.9 4.3 1.3 6.7 3.3 5.7 2.1 ;
5.0 3.0 1.6 0.2 6.6 3.0 4.4 1.4 7.2 3.2 6.0 1.8 ;
5.0 3.4 1.6 0.4 6.8 2.8 4.8 1.4 6.2 2.8 4.8 1.8 ;
5.2 3.5 1.5 0.2 6.7 3.0 5.0 1.7 6.1 3.0 4.9 1.8 ;
5.2 3.4 1.4 0.2 6.4 2.9 4.5 1.5 6.4 2.8 5.6 2.1 ;
4.7 3.2 1.6 0.2 5.7 2.6 3.5 1.0 7.2 3.0 5.8 1.6];

maxi = max(max(Tout))
mini = min(min(Tout))
%% calcul de matrice normalises
for i=1:30
for j=1:12

Toutn(i,j)=2* ((Tout(i,j) - mini)/ (maxi - mini)) -1;

end
end

Toutn;
iris1 = transpose(Toutn(:,1:4));
iris2 = transpose(Toutn(:,5:8));
iris3 = transpose(Toutn(:,9:12));
%A = Toutn(1:20,1:4);
A = iris1(:,1:20);
B = iris1(:,21:30);
C = iris2(:,1:20);
D = iris2(:,21:30);
E = iris3(:,1:20);
F = iris3(:,21:30);
E1 = E(:,1:10);
E2 = E(:,11:20);

C1 = C(:,1:10);
C2 = C(:,11:20);

A1 = A(:,1:10);
A2 = A(:,11:20);
%%%%Partie d'apprentissage%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%Les matrices d'apprentissage

App_iris1=[A,C1,E1]

App_iris2=[C,A1,E2]

App_iris3=[E,A2,C2]

%%%Les matrices de test

Test_iris1=[B,D,F];

7
Test_iris2=[D,B,F];

Test_iris3=[F,B,D];

%%%% test de size de la matrice d'apprentissage pour voir le nb de


%%%% caractere et nombre des exemplaire
s= size(App_iris3)

%%%%%

[nbre_exempl,nbre_caract]=size(App_iris3);
nbre_caract;
nbre_exempl;
Nero_cache = 1;
T=[ones(1,20),(-1*ones(1,20))];

%%%%% dans le reseau de neurones on a le nbre de caracteristique


(nbre_caract)
%%%%% equivalent au nombre des neurones dans la couche d'entre, nero_cache
%%%%% equivalent au nombre des neurones dans la couche cache et une seule
%%%%% sortie
net_RN=newff(minmax(App_iris1),[nbre_caract,Nero_cache,1]);
net_RN= init(net_RN);
net_RN.trainParam.show = 15;
net_RN.trainParam.epochs= 200;
net_RN.trainParam.goal = 0.001;
net_RN = train(net_RN,App_iris1,T);

%%%% Phase Test %%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

seuil = 0.5;
vect = sim(net_RN, Test_iris1);
vect (find(vect>=seuil))=1;
vect (find(vect < seuil)) = 0;
vect;

Vous aimerez peut-être aussi