Exercice 50 / 100

Machine Learning basique

Entraînez une régression linéaire sur des données simples

scikit-learn (alias sklearn) est la bibliothèque de référence pour le machine learning en Python. Elle suit une api homogène : fit / predict / score.

Installation : pip install scikit-learn

Les 3 étapes universelles

1. créer le modèle modele = MaClasse(params) 2. l'entraîner sur des données modele.fit(X, y) 3. prédire / évaluer modele.predict(X_new) modele.score(X, y)
Les trois temps de scikit-learn, les mêmes pour tous ses modèles : on donne X en deux dimensions et y, fit cherche les paramètres, puis le modèle entraîné prédit sur de nouvelles données

Vocabulaire

X → features (variables d'entrée) matrice 2D (n_samples, n_features) y → target (variable à prédire) vecteur 1D (n_samples,) fit → l'apprentissage : trouver les paramètres du modèle predict → utiliser le modèle entraîné sur de nouvelles données

X est toujours 2D, même pour une seule feature. Astuce : X.reshape(-1, 1) ou np.array([[1],[2],[3]]).

Exemple : régression linéaire

Objectif : trouver la droite y = a·x + b qui passe au mieux par les points.

from sklearn.linear_model import LinearRegression import numpy as np
X = np.array([[1],[2],[3],[4],[5]]) # 5 exemples, 1 feature y = np.array([2, 4, 5, 4, 5])
modele = LinearRegression() modele.fit(X, y) # apprentissage
print(f'Coef: {modele.coef_[0]:.2f}') # pente a print(f'Intercept: {modele.intercept_:.2f}') # ordonnée b print(f'Prédiction x=6: {modele.predict([[6]])[0]:.2f}') print(f'Score R²: {modele.score(X, y):.3f}')

Le score R² (R-carré)

R² = 1 → modèle parfait R² = 0 → pas mieux que prédire la moyenne R² < 0 → pire que la moyenne (modèle inadapté)

Pour de la classification, on utilise plutôt l'accuracy (% de bonnes prédictions).

sklearn fournit des dizaines de modèles : LogisticRegression, DecisionTreeClassifier, RandomForestClassifier, KMeans, etc. Tous suivent la même api fit/predict — c'est la grande force de la lib.

exercise.py

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →