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 !