DébutantMachine Learning
8 min de lecture41 vues

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".

  1. Pour classer un nouveau point, on regarde les K points les plus proches dans les données connues.
  2. 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étriqueUtilitéExemple
AccuracyPourcentage global de réussiteClassification de fleurs équilibrées
RecallCapacité à tout trouverDétecter le cancer (mieux vaut une fausse alerte qu'un raté)
PrecisionFiabilité de la prédictionDé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.