Régression Polynomiale
Sous-apprentissage et sur-apprentissage
Enonce
Implémenter regression_polynomiale(x, y, degre) qui renvoie le vecteur des coefficients [a_0, a_1, ..., a_d]. Tester sur des données générées par $y = 2 + 3x - x^2 + \text{bruit}$ avec degrés 1, 2 et 10. Comparer la MSE en train et en test.
Signature attendue
def regression_polynomiale(x, y, degre: int) -> np.ndarray:
📖 Rappel de cours
La régression polynomiale étend la régression linéaire en cherchant un polynôme de degré $d$ qui ajuste les points. C'est encore une régression linéaire... mais dans une base polynomiale $\{1, x, x^2, \ldots, x^d\}$.
Modèle :
$\hat{y} = a_0 + a_1 x + a_2 x^2 + \cdots + a_d x^d$
Forme matricielle :
On construit la matrice de Vandermonde $V \in \mathbb{R}^{n \times (d+1)}$ avec $V_{ij} = x_i^j$, puis on résout le système des moindres carrés :
$a^* = (V^T V)^{-1} V^T y$
Compromis biais-variance :
- Degré trop faible : sous-apprentissage (erreur élevée partout)
- Degré trop élevé : sur-apprentissage (erreur nulle sur le train, catastrophique sur le test)
Le degré « idéal » se sélectionne par validation croisée (cf. exo 07).
← Exercices d'IA et d'apprentissage automatique en Python — CPGE
Exercices du meme theme
- Arbre de Décision Simple
- Normalisation des Données
- Métriques de Régression
- Régression Logistique
- Naïve Bayes Gaussien
- Analyse en Composantes Principales (ACP)
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.