Introduction
Nous vivons dans une ère de révolution numérique où la quantité de données générées quotidiennement dépasse nos attentes les plus ambitieuses. Cette explosion de Big Data a ouvert des portes extraordinaires pour comprendre les phénomènes complexes et automatiser les processus de décision.
Le Machine Learning, ou apprentissage automatique, est au cœur de cette transformation. Ses applications sont omniprésentes : détection de fraude bancaire, systèmes de recommandation personnalisés, reconnaissance faciale, diagnostic médical assisté par ordinateur, et bien d'autres. Mais comment fonctionne réellement le Machine Learning ?
Qu'est-ce que la Data Science ?
La Data Science est l'ensemble des méthodes et techniques permettant d'extraire automatiquement des informations utiles à partir de données brutes. Elle combine l'informatique, les mathématiques, et les statistiques pour transformer des données en connaissances actionnables.
Le Machine Learning est une composante fondamentale de la Data Science, permettant aux systèmes d'apprendre et de s'améliorer à partir de l'expérience, sans être explicitement programmés pour chaque cas particulier.
Qu'est-ce que le Machine Learning ?
Plusieurs définitions existent selon les auteurs :
Arthur Samuel (1959) : "Le Machine Learning est un domaine d'étude qui donne aux ordinateurs la capacité d'apprendre sans être explicitement programmés."
Tom Mitchell (1998) : "Un programme apprend de l'expérience E par rapport à une tâche T et une mesure de performance P, si sa performance sur la tâche T, mesurée par P, s'améliore avec l'expérience E."
En essence, le Machine Learning permet aux ordinateurs de découvrir des patterns dans les données et de faire des prédictions sans instructions explicites.
Types d'apprentissage
Apprentissage supervisé
Dans l'apprentissage supervisé, nous disposons d'un ensemble de paires (X, Y) où X est l'entrée et Y est la sortie attendue. Le modèle apprend à prédire Y à partir de X en découvrant la fonction F telle que $F(X) = Y$.
Exemples : prédiction de prix immobiliers, classification d'emails (spam/non-spam), reconnaissance d'images.
Apprentissage non supervisé
L'apprentissage non supervisé travaille avec des données sans étiquettes. L'objectif est de découvrir la structure cachée dans les données, comme le regroupement naturel d'éléments similaires (clustering).
Exemples : segmentation de clients, détection d'anomalies, réduction de dimensionnalité.
Régression linéaire simple
La régression linéaire simple est l'un des modèles de Machine Learning les plus fondamentaux. Elle établit une relation linéaire entre une variable indépendante X et une variable dépendante Y.
Le modèle s'exprime mathématiquement comme :
$Y_i = \beta_0 + \beta_1\cdot X_i + \epsilon_i$
Où :
- $Y_i$ est la variable à prédire
- $X_i$ est la variable prédictive
- $\beta_0$ est l'ordonnée à l'origine (intercept)
- $\beta_1$ est la pente (coefficient)
- $\epsilon_i$ est le terme d'erreur aléatoire
Estimation des paramètres (MCO/OLS)
L'estimation des paramètres β₀ et β₁ se fait classiquement par la méthode des Moindres Carrés Ordinaires (MCO ou OLS en anglais). Cette méthode minimise la somme des carrés des résidus.
Les formules d'estimation sont :
$\beta_1 = \sum(X_i - \bar{X})(Y_i - \bar{Y}) / \sum(X_i - \bar{X})^2$
$\beta_0 = \bar{Y} - \beta_1\cdot \bar{X}$
Où X̄ et Ȳ sont les moyennes respectives de X et Y.
Exemple pratique : Prédiction des prix de location
Considérons un exemple concret : prédire le prix de location d'un appartement en fonction de sa surface.
Étape 1 : Chargement et visualisation des données
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Load and visualize data
data = pd.read_csv('house.csv')
plt.scatter(data['surface'], data['loyer'], alpha=0.5)
plt.xlabel('Surface (m²)')
plt.ylabel('Loyer (€)')
plt.show()
Étape 2 : Nettoyage des données
Nous filtrons les valeurs aberrantes (outliers) pour améliorer la qualité du modèle :
# Filter outliers
data = data[data['loyer'] < 10000]
X = data['surface'].values
Y = data['loyer'].values
Étape 3 : Calcul manuel
Calculons d'abord les coefficients manuellement pour comprendre les formules :
# Manual calculation
X_mean, Y_mean = X.mean(), Y.mean()
beta_1 = np.sum((X - X_mean) * (Y - Y_mean)) / np.sum((X - X_mean)**2)
beta_0 = Y_mean - beta_1 * X_mean
print(f"Loyer = {beta_1:.4f} × surface + {beta_0:.4f}")
Résultat : β₁ = 30.66 et β₀ = 266.45
Ce qui signifie : chaque mètre carré supplémentaire augmente le loyer de 30,66 € en moyenne.
Prédiction pour un appartement de 30 m²
$Loyer = 30.66 \times 30 + 266.45 \approx 1186 \text{€}$
Étape 4 : Utilisation de scikit-learn
En pratique, nous utilisons des bibliothèques optimisées comme scikit-learn :
# scikit-learn
model = LinearRegression()
model.fit(X.reshape(-1, 1), Y)
print(f"Coefficient: {model.coef_[0]:.4f}")
print(f"Intercept: {model.intercept_:.4f}")
print(f"R² = {model.score(X.reshape(-1, 1), Y):.4f}")
Métrique de performance : R²
Pour évaluer la qualité de notre modèle, nous utilisons le coefficient de détermination R² (R-squared) :
$R^2 = 1 - \sum(Y_i - \hat{Y}_i)^2 / \sum(Y_i - \bar{Y})^2$
Où :
- $Y_i$ sont les valeurs réelles
- $\hat{Y}_i$ sont les valeurs prédites
- $\bar{Y}$ est la moyenne des valeurs réelles
R² varie de 0 à 1 :
- R² proche de 1 : le modèle explique bien la variabilité des données
- R² proche de 0 : le modèle explique peu ou aucune variabilité
Conclusion
Nous avons couvert les fondamentaux du Machine Learning à travers la régression linéaire simple. Ces concepts servent de base pour aborder des algorithmes plus complexes.
Les éléments clés à retenir :
- Le Machine Learning permet aux systèmes d'apprendre à partir de données
- Il existe deux grands types : supervisé et non supervisé
- La régression linéaire est un outil puissant pour les relations linéaires
- L'évaluation du modèle est aussi importante que sa création
Dans les articles suivants, nous explorerons la régression multiple, la classification, les arbres de décision, et bien d'autres algorithmes passionnants !