MODÈLES / 03 · EXERCICE
Calculer avec la pseudo-inverse
La pseudo-inverse généralise l’inverse aux matrices rectangulaires ou de rang insuffisant.
np.linalg.pinv utilise une décomposition en valeurs singulières. θ = A⁺y donne une solution de moindres carrés ; s’il y a plusieurs solutions, elle choisit celle de norme minimale.
Une forte colinéarité peut rendre les coefficients instables même si les prédictions changent peu.
Exemple expliqué
- 1
A = np.column_stack([X.to_numpy(), np.ones(len(X))])Construction de la matrice augmentée, avec la constante en dernière colonne.
- 2
theta = np.linalg.pinv(A) @ y.to_numpy()Résolution sans calculer explicitement (AᵀA)⁻¹. np.linalg.lstsq est une autre méthode adaptée.
- 3
a = theta[:-1] b = theta[-1] y_hat = A @ thetaa contient deux coefficients ; b est scalaire ; y_hat contient une prédiction par ligne.
Code à compléter
Construire A, calculer theta avec la pseudo-inverse, puis a, b et y_hat. Afficher les coefficients et les premières prédictions.
Saisie autonome · crédit complet après réussite
Le résultat apparaîtra ici.
Session Python
Les variables restent disponibles entre les pages. Un rechargement efface les variables ; le code et l’utilisation de l’aide restent enregistrés dans cet onglet.