Partager
Tutoriel : Entraîner votre premier modèle d'apprentissage automatique
Dominique DelaireCe guide utilise Python et la librairie Scikit-learn pour vous montrer pas à pas comment créer, entraîner et tester un modèle de classification simple.
Prérequis
Pour suivre ce tutoriel, vous devez avoir Python d'installé. Vous installerez ensuite les librairies nécessaires via votre terminal linux, ShellbotsOS ou windows en faisant :
pip install scikit-learn numpy pandas
Étape 1 : Préparation des Données
Nous utiliserons le jeu de données classique "Iris", qui contient des mesures de différentes fleurs. Notre but est de prédire l'espèce de la fleur (la "cible") à partir de ses mesures (les "caractéristiques"). Pour plus de détails sur le modèle simple des données du Dataset Iris, cliquez ici
1.1 Charger et Diviser les Données
Nous séparons les données en deux : 70% pour l'entraînement (ce que le modèle apprend) et 30% pour le test (ce qui permet de vérifier s'il a bien appris).
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Charger les données Iris
iris = load_iris()
X = iris.data # Les caractéristiques (mesures de la fleur)
y = iris.target # La cible (l'espèce : 0, 1, ou 2)
# Séparer les données (70% Entraînement, 30% Test)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
print("Taille des données d'entraînement :", X_train.shape)
Étape 2 : Création et Entraînement du Modèle
Nous utilisons l'algorithme simple mais efficace K-Nearest Neighbors (KNN). Il classe une nouvelle donnée en regardant les données similaires les plus proches (ici, nous prenons les 3 plus proches, d'où n_neighbors=3).
2.1 Principe de l'algorithme KNN
KNN est un algorithme de classification très intuitif. Imaginez un nouveau point de donnée (notre nouvelle fleur) qui apparaît sur un graphique. Pour savoir à quelle catégorie (espèce) elle appartient, le modèle fait simplement ceci :
- Il regarde autour de ce nouveau point et identifie les K données d'entraînement (les fleurs déjà connues) qui sont les plus proches de lui.
- Il attribue à ce nouveau point la catégorie la plus fréquente parmi ces K voisins.
Dans notre code, nous avons choisi K=3. Le modèle vérifiera donc les trois fleurs les plus proches de la nouvelle pour décider de son espèce. Plus le voisin est proche, plus son influence est forte. C'est simple, mais très efficace !
2.2 Entraîner le Modèle
La méthode .fit() est l'étape d'apprentissage.
from sklearn.neighbors import KNeighborsClassifier
# Créer le modèle KNN
model = KNeighborsClassifier(n_neighbors=3)
# Entraîner le modèle (l'apprentissage se passe ici)
model.fit(X_train, y_train)
print("Entraînement terminé.")
Étape 3 : Tester le Modèle (Évaluation)
Nous mesurons la performance du modèle sur les 30% de données qu'il n'a jamais vues. L'évaluation se fait via la Précision (Accuracy), le pourcentage de prédictions correctes.
from sklearn.metrics import accuracy_score
# Faire des prédictions sur l'ensemble de test
y_pred = model.predict(X_test)
# Évaluer la performance
precision = accuracy_score(y_test, y_pred)
print(f"Précision du modèle sur les données de test : {precision * 100:.2f}%")
Si on obtient un score proche de 100%, alors notre modèle est très performant !
Étape 4 : Faire une Prédiction
Maintenant, nous pouvons donner au modèle de nouvelles mesures et lui demander de classer cette nouvelle fleur :
# Créer de nouvelles données (Exemple : [Longueur Sépale, Largeur Sépale, Longueur Pétale, Largeur Pétale])
nouvelles_mesures = [[5.1, 3.5, 1.4, 0.2]]
#Demander au modèle de prédire la classe
prediction_numerique = model.predict(nouvelles_mesures)
# Afficher le résultat
nom_espece = iris.target_names[prediction_numerique[0]]
print(f"La prédiction est l'espèce : {nom_espece}")
Exécution du programme d'entraînement :

La prochaine fois nous apprendrons à enregistrer et entraîner un modèle prédictif avec des images de grains de beauté ayant des mélanomes ou non pour pouvoir créer une application prédictive.