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.
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.
Specialiste IA — Master Intelligence Artificielle
Diplome d'un Master en Intelligence Artificielle, je travaille au quotidien sur des projets IA en entreprise. J'ai cree IwanttolearnAI pour rendre l'apprentissage de l'IA accessible a tous, gratuitement.
Continuer a 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.
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.
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.