Les Fondations du Machine Learning
Découvrez les fondamentaux du Machine Learning : régression linéaire, classification KNN, clustering K-Means et les bonnes pratiques pour évaluer vos modèles.
Par Alex Perey
Introduction et Régression : Prédire des Valeurs
Le Machine Learning (ML) n'est pas de la magie, c'est des mathématiques appliquées. Dans cette section, nous allons comprendre comment une machine "apprend" à prédire un chiffre (par exemple le prix d'un appartement).
Le Concept de l'Apprentissage Supervisé
Imaginez que vous apprenez à un enfant à reconnaître des fruits. Vous lui montrez une pomme et dites "Pomme". Vous lui montrez une banane et dites "Banane".
- Données (X) : L'image du fruit.
- Étiquette (y) : Le nom du fruit.
- But : Quand l'enfant voit un nouveau fruit sans étiquette, il devine le nom.
C'est l'essence de l'apprentissage supervisé : apprendre une fonction qui mappe X vers y.
La Régression Linéaire
C'est l'algorithme le plus simple pour prédire une valeur continue. Il cherche à tracer la "meilleure droite" qui passe à travers vos données.
Intuition : Si un appartement de 20m² coûte 100k€ et un de 40m² coûte 200k€, la régression linéaire devinera qu'un 30m² coûte 150k€.
Voici comment le processus fonctionne :
Micro-Exercice : Votre Première Prédiction
Nous allons utiliser scikit-learn, la bibliothèque standard en Python.
Objectif : Prédire le salaire en fonction des années d'expérience.
import numpy as np
from sklearn.linear_model import LinearRegression
# 1. Données (X=Années, y=Salaire)
X = np.array([[1], [2], [3], [4]])
y = np.array([25000, 35000, 45000, 55000])
# 2. Création et entraînement du modèle
model = LinearRegression()
model.fit(X, y)
# 3. Prédiction pour 5 ans d'expérience
prediction = model.predict([[5]])
print(f"Salaire prédit pour 5 ans : {prediction[0]:.0f}€")
Si le code affiche environ 65000€, bravo ! Votre modèle a compris la relation linéaire entre années d'expérience et salaire.
Classification et Clustering : Trier les Données
Parfois, on ne veut pas prédire un chiffre, mais une catégorie (Oui/Non, Chat/Chien, Spam/Normal).
Classification : K-Nearest Neighbors (KNN)
L'algorithme des "K plus proches voisins" est très intuitif : "Dis-moi qui sont tes voisins, je te dirai qui tu es".
- Pour classer un nouveau point, on regarde les K points les plus proches dans les données connues.
- Si la majorité sont des "Triangles", le nouveau point devient un "Triangle".
Apprentissage Non-Supervisé : K-Means
Ici, pas d'étiquettes. On donne des données en vrac à l'algorithme et on lui dit : "Trouve des groupes (clusters) logiques".
En non-supervisé, l'ordinateur ne sait pas ce que sont les groupes. Il sait juste qu'ils se ressemblent mathématiquement. C'est à vous d'interpréter le sens du groupe (ex : "Clients fidèles").
Micro-Exercice : Classification de Fleurs
Utilisons le célèbre dataset Iris pour classer des fleurs selon leurs pétales.
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# 1. Charger les données
iris = load_iris()
X, y = iris.data, iris.target
# 2. Séparer pour tester honnêtement (80% entraînement, 20% test)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 3. Entraîner le KNN (K=3)
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# 4. Évaluer
accuracy = knn.score(X_test, y_test)
print(f"Précision du modèle : {accuracy * 100:.2f}%")
Si vous obtenez > 90%, votre modèle est capable de distinguer les espèces de fleurs uniquement grâce aux dimensions des pétales.
Méthodologie : Comment ne pas se tromper
Avoir un modèle qui marche, c'est bien. Savoir pourquoi il marche (ou pas), c'est mieux.
Le Danger de l'Overfitting (Sur-apprentissage)
C'est quand votre modèle apprend "par cœur" les données d'entraînement, y compris le bruit et les erreurs.
- Symptôme : 100% de réussite sur l'entraînement, mais 50% sur les nouvelles données.
- Solution : Simplifier le modèle ou ajouter plus de données.
Métriques d'Évaluation
Ne vous fiez pas juste à la "Précision" globale.
| Métrique | Utilité | Exemple |
|---|---|---|
| Accuracy | Pourcentage global de réussite | Classification de fleurs équilibrées |
| Recall | Capacité à tout trouver | Détecter le cancer (mieux vaut une fausse alerte qu'un raté) |
| Precision | Fiabilité de la prédiction | Détecter du spam (on ne veut pas mettre un mail important en spam) |
Micro-Exercice : Matrice de Confusion
Visualisez où votre modèle se trompe.
from sklearn.metrics import confusion_matrix
# Supposons ces prédictions (0=Chat, 1=Chien)
y_vrai = [0, 0, 1, 1, 0, 1]
y_pred = [0, 1, 1, 1, 0, 1] # Le modèle s'est trompé sur le 2ème
cm = confusion_matrix(y_vrai, y_pred)
print("Matrice de Confusion :\n", cm)
Une matrice diagonale parfaite signifie zéro erreur. Les chiffres hors diagonale sont les confusions du modèle.
À propos de l'auteur
Alex Perey
Diplômé d'un master en intelligence artificielle, je travaille au quotidien sur des projets IA en entreprise. J'ai créé IwanttolearnAI pour rendre l'apprentissage de l'IA accessible à tous, gratuitement.
Continuer à apprendre
Systèmes de Recommandation : de Netflix à Spotify
Découvrez comment Netflix, Spotify et Amazon construisent leurs moteurs de recommandation. De la factorisation matricielle aux two-tower models, maîtrisez les algorithmes et les métriques.
24 min de lecture · 40 vues
Séries Temporelles et Prévision avec Python
Apprenez à modéliser et prévoir des séries temporelles avec ARIMA, Prophet et XGBoost. Maîtrisez la validation temporelle correcte et les métriques adaptées.
22 min de lecture · 61 vues
SVM, Arbres de Décision et Random Forest en Profondeur
Maîtrisez les algorithmes classiques les plus puissants du ML : SVM avec kernel trick, arbres de décision et Random Forest. Comprendre quand ces modèles battent le Deep Learning.
20 min de lecture · 35 vues