Apprentissage inductif appliqué Introduction à MATLAB

Transcription

Apprentissage inductif appliqué Introduction à MATLAB
Apprentissage inductif appliqué
Introduction à MATLAB
Gilles Louppe
Université de Liège
11 octobre 2010
Gilles Louppe (ULg)
Matlab
11 octobre 2010
1 / 14
Lancement de MATLAB
MATLAB est installé sur les machines du réseau 8.
Taper matlab dans un terminal pour lancer MATLAB.
Gilles Louppe (ULg)
Matlab
11 octobre 2010
2 / 14
Variables
Scalaires
>> i = 42
i =
42
Vecteurs
>> v = [1 2 3]
v =
1
2
% ou encore, v = [1, 2, 3]
3
Matrices
>> m = [1.5 3 4.5; 10 15 20]
m =
1.5000
3.0000
4.5000
10.0000
15.0000
20.0000
Gilles Louppe (ULg)
Matlab
11 octobre 2010
3 / 14
Opérations standards
Opérations arithmétiques
>> A+B; A*B; A^k; ...
Opérations élément par élément
>> A.*B; A.^k
Transconjuguée, Transposée
>> A’; A.’
Résolution de systèmes linéaires A*x = b
>> x = A\b
Séquences
>> 1:5 % de 1 à 5
ans =
1
2
3
4
5
>> 1:0.5:2.5 % de 1 à 2.5, avec un pas de 0.5
ans =
1.0000
1.5000
2.0000
2.5000
Gilles Louppe (ULg)
Matlab
11 octobre 2010
4 / 14
Accès aux éléments
Les indices commencent à partir de 1 (plutôt qu’à partir de 0).
Accès à un élément individuel
>> m(2, 3)
% élément situé en (ligne 2, colonne 3)
Accès à une colonne, à une ligne
>> m(:, 3)
>> m(2, :)
% 3ème colonnne
% 2ème ligne
Accès par vecteurs
>> m(:, 2:2:end) % Toutes les colonnes paires
>> m([1 5 2], :) % Lignes 1, 5 et 2
Gilles Louppe (ULg)
Matlab
11 octobre 2010
5 / 14
Structures de contrôles
if
for
if condition1
statements
elseif condition2
statements
else
statements
end
for variable = vector
statements
end
Gilles Louppe (ULg)
while
while condition
statements
end
Matlab
11 octobre 2010
6 / 14
Fonctions prédéfinies
zeros, ones, eye, rand, ...
ndims, size
exp, log, cos, sin, tan, ...
sum, mean, max, min, ...
help, doc
Gilles Louppe (ULg)
Matlab
11 octobre 2010
7 / 14
Graphiques
>> x = 0:0.1:10;
>> plot(x, sin(x), x, cos(x))
Gilles Louppe (ULg)
Matlab
11 octobre 2010
8 / 14
Scripts
Un script MATLAB est un fichier .m contenant une suite de
commandes.
Appel en tapant le nom du fichier (sans le .m).
>> myscript % Exécution du script "myscript.m"
Toutes les variables sont globales et interagissent avec le workspace.
Gilles Louppe (ULg)
Matlab
11 octobre 2010
9 / 14
Définition de fonctions
function [out1, out2, ...] = func_name(in1, in2, ...)
% Function documentation
statements
out1 = ...
out2 = ...
Une fonction est définie dans un fichier .m du même nom (e.g.,
func_name.m).
Appel en tapant le nom du fichier/de la fonction.
>> func_name(42)
Toutes les variables sont locales et n’interagissent pas avec le
workspace.
Gilles Louppe (ULg)
Matlab
11 octobre 2010
10 / 14
Arbres de régression
Ajouter path(path, ’/home/glouppe/aia/’); en début de script.
Utiliser la fonction rt_predict pour créer un arbre de régression sur
un ensemble d’apprentissage LS et l’évaluer sur un ensemble de test
TS.
y hat ts = rt predict(x ls, y ls, nmin, x ts, verbose)
x_ls : valeurs d’entrées du LS (matrice n1 × m) ;
y_ls : valeurs de sorties du LS (matrice n1 × 1) ;
nmin : paramètre contrôlant le nombre minimal d’individus dans un
noeud de l’arbre ;
x_ts : valeurs d’entrées du TS (matrice n2 × m) ;
verbose : 1 pour verbose, 0 sinon ;
y_hat_ts : prédictions pour TS (matrice n2 × 1).
Gilles Louppe (ULg)
Matlab
11 octobre 2010
11 / 14
k-nearest neighbor
Ajouter path(path, ’/home/glouppe/aia/’); en début de script.
Utiliser la fonction knn_predict pour évaluer un ensemble de test
TS à partir d’un modèle kNN construit sur un ensemble
d’apprentissage LS.
y hat ts = knn predict(x ls, y ls, k, x ts, verbose)
x_ls : valeurs d’entrées du LS (matrice n1 × m) ;
y_ls : valeurs de sorties du LS (matrice n1 × 1) ;
k : nombre de voisins à considérer ;
x_ts : valeurs d’entrées du TS (matrice n2 × m) ;
verbose : 1 pour verbose, 0 sinon ;
y_hat_ts : prédictions pour TS (matrice n2 × 1).
Gilles Louppe (ULg)
Matlab
11 octobre 2010
12 / 14
Réseaux de neurones artificiels
Construction d’un réseau feedforward
net = newff(x_ls, y_ls, [10]); % Une couche, 10 neurones
net.divideFcn = ’’;
% (Résoud un bug)
net.trainParam.epochs = 100;
% Nombre d’itérations
Entraı̂nement
net = train(net, x_ls, y_ls);
Évaluation
y_hat_ts = sim(net, x_ts);
Gilles Louppe (ULg)
Matlab
11 octobre 2010
13 / 14
Réseaux de neurones artificiels (cont.)
Plusieurs couches cachées ?
net = newff(x_ls, y_ls, [3 3 3]);
Les éléments d’un dataset sont orientés en colonnes. Pour un
ensemble de n objets composés de m attributs et associés à p valeurs
de sortie
I
I
I
l’ensemble d’entrée x ls est une matrice m × n ;
l’ensemble de sortie y ls est une matrice p × n ;
l’ensemble de test x ts est une matrice m × n0 .
Documentation abondante (Neural Network Toolbox)
Gilles Louppe (ULg)
Matlab
11 octobre 2010
14 / 14