Académique Documents
Professionnel Documents
Culture Documents
Importation des données à partir d’un fichier Excel et labellisation des observations
Remarque
Génération de nombre aléatoire avec MATLAB
Il suffit d’une simple instruction :
Y=random(‘name’,A,B,c,d)
Où :
name est le nom de la loi : par exemple ‘Normal’ (il ya 23 lois
différentes dans Matlab).
A et B sont les paramètres de la loi (dans le cas de la loi normale il y en
a deux , pour les autres lois il peut il y en avoir moins ou plus).
c est le nombre de lignes
d est le nombre de colonnes.
Exemple :
Y=random('Normal',0,1,20,1)
Cette instruction va nous donner une colonne ('Normal',0,1,20,1) de 20
nombres ('Normal',0,1,20,1) aléatoires générés par une loi normale
('Normal',0,1,20,1)centrée ('Normal',0,1,20,1)réduite
('Normal',0,1,20,1).
Premier TP
Travaux pratiques sur la classification par le perceptron
But du TP
Nous avons vu que nous pouvons utiliser le perceptron dans la tâche de
classification.
L’algorithme utilisé pour cela est l’algorithme du perceptron.
Nous avons un ensemble d’entraînement (un ensemble de 4 points, dont
nous connaissons les coordonnées et la classe à laquelle appartient
chaque point).
A1 A2 B1 B2
X1 0.3 0.1 -0.6 -0.1
X2 0.7 -0.45 0.3 -0.8
t 1 1 0 0
𝑤10 = 0.8
𝑤20 = −0.5
Nous choisissons aussi le taux d’apprentissage :
𝛽 = 0.5
Deuxième action :
Troisième action :
Nous vérifions si ce premier point est bien classé. S’il ne l’est pas nous
répétons la première action avec les nouveaux poids.
Et nous vérifions de nouveau jusqu’à ce que le point soit bien classé.
Quatrième action :
Prendre un nouveau point et répéter le processus.
Cinquième et dernière action :
Après le dernier point nous vérifions si, avec les derniers poids, le
classement est correct pour tous les points :
Cinquième action :
Visualisation :
Ici nous avons deux instructions :
plotpc(net.IW{1},net.b{1});
plotpv(P,T);
for a = 1:3
[net,Y,E] = adapt(net,P,T);
end;
Pour voir les valeurs des poids et du biais, nous avons les instructions
suivantes :
net.IW{1}
net.b{1}
Exercice :
1. Avec deux groupes de points :
La classe A contient deux points : (-0.5, -0.5) ;(-0.5, 0.5)
La classe B contient deux points : (0.3, -0.5) ;(-0.1, 1)
Créer avec Matlab un perceptron permettant de classer ces deux classes.
T = [1 1 0 0];
plotpv(P,T);
view(net)
hold on
linehandle=plotpc(net.IW{1},net.b{1});
for a = 1:3
[net,Y,E] = adapt(net,P,T);
end ;
net.IW{1}
net.b{1}
2. Avec trois groupes de points :
Classification de trois groupes de points avec Matlab
Soient les trois classes suivantes :
- La classe A contient les 3 points :
(0.1 ; 0.1) , (0.1 ; 0.5) , (0.2 ; 0.4)
- La classe B contient les 3 points :
(0.6 ; 0.1) , (0.7 ; 0.1) , (0.8 ; 0.0)
- La classe C contient les 3 points :
(0.5 ; 0.5) , (0.6 ; 0.6) , (0.7 ; 0.5)
Créer avec Matlab un perceptron contenant deux neurones.
Entraîner ce perceptron pour qu’il apprenne à classer ces 9 points,
chacun dans sa classe respective.
Déterminer le nombre minimal d’itérations pour que la séparation des
trois classes soit correcte.
Donner pour les deux neurones les valeurs finales des poids et du biais.
Réponse :
P=[0.1 0.1 0.2 0.6 0.7 0.8 0.5 0.6 0.7;0.1 0.5 0.4 0.1 0.1 0.0 0.5 0.6
0.5]
T=[1 1 1 1 1 1 0 0 0;1 1 1 0 0 0 1 1 1]
Ou
P=[0.1 0.6 0.1 0.2 0.5 0.6 0.7 0.7 0.8;0.1 0.1 0.5 0.4 0.5 0.6 0.5 0.1 0] ;
T=[1 1 1 1 0 0 0 1 1; 1 0 1 1 1 1 1 0 0] ;
plotpv(P,T)
net = newp([-1 1;-1 1],2);
view(net)
hold on
linehandle=plotpc(net.IW{1},net.b{1});
for a = 1:20
[net,Y,E] = adapt(net,P,T);
linehandle = plotpc(net.IW{1},net.b{1},linehandle); drawnow;
end;
net.IW{1}
net.b{1}