Aller au contenu

Analyse en Composantes Principales (ACP)

Réduction de dimension par diagonalisation

Exercice Avancé · Ia · prepa scientifique et economique (CPGE)

Enonce

Implémenter acp(X, k) qui renvoie (X_reduit, variance_expliquee). Tester sur un jeu 3D où les points sont presque alignés sur un plan : la projection en 2D doit préserver presque toute la variance.

Signature attendue

def acp(X, k: int) -> tuple:

📖 Rappel de cours

L'ACP projette les données sur un sous-espace de dimension $k < p$ qui maximise la variance préservée. C'est le pilier de la réduction de dimension non supervisée et de la visualisation de données en haute dimension.

Algorithme :

  1. Centrer les données : $\tilde{X} = X - \bar{X}$
  2. Calculer la matrice de covariance $\Sigma = \frac{1}{n-1}\tilde{X}^T\tilde{X}$
  3. Diagonaliser $\Sigma$ : $\Sigma v_i = \lambda_i v_i$ avec $\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0$
  4. Garder les $k$ premiers vecteurs propres (les composantes principales)
  5. Projeter : $X_{\text{réduit}} = \tilde{X} \, V_k$

Variance expliquée :

$\text{var\_expl}_k = \frac{\sum_{i=1}^k \lambda_i}{\sum_{i=1}^p \lambda_i}$

$\Sigma$ est symétrique réelle donc diagonalisable dans une base orthonormée (théorème spectral). On utilise np.linalg.eigh qui exploite cette propriété et garantit des valeurs propres réelles.

← Exercices d'IA et d'apprentissage automatique en Python — CPGE

Exercices du meme theme

  • Régression Polynomiale
  • Régression Logistique
  • Naïve Bayes Gaussien
  • Forêt Aléatoire

La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Essai gratuit
Testez toutes les fonctionnalités sans engagement
En continuant, vous acceptez notre politique de confidentialité.
Déjà abonné ? Se reconnecter
Recevez un lien de connexion par email
Parcourir gratuitement →
Aperçu limité · sans inscription · sans vérification IA
€4,99
/ mois · accès illimité · résiliable
Paiement sécurisé
En vous abonnant, vous acceptez nos conditions et politique de confidentialité.
Résiliation possible depuis votre espace PayPal.

Chargement...

Initialisation de l'environnement

Prepa🐍ython
Progresser en Python & SQL · Prépa scientifique
Progression
0 / 0
Solo
— / —
Python... SQL...
Recherche
🔬 Bac a sable Python ↗ 🧪 Bac a sable SQL ↗ 📝 Concours blanc ↗ 🏖️ Code à la plage ↗ 📚 Listes de rentrée ↗ 🛠️ Admin ↗
Tu aimes PrepaPython ?
Fais-le savoir !
← Retour à l'accueil Mentions legales & confidentialite