cours
Eigendecomposition : Guide de la factorisation matricielle pour les débutants
Les opérations sur les matrices constituent le cœur des calculs dans les domaines de l'apprentissage automatique, de l'analyse statistique et du calcul scientifique. Par exemple, de nombreuses opérations statistiques nécessitent l'inversion, la diagonalisation et l'exponentiation des matrices. Ces opérations sont coûteuses en termes de calcul, mais il existe des méthodes pour décomposer une matrice en un ensemble plus petit de matrices et augmenter ainsi l'efficacité du calcul. Ces opérations sont généralement appelées factorisation matricielle et portent des noms spécifiques en fonction de la nature des petites matrices obtenues.
La décomposition en valeurs propres est une méthode de factorisation des matrices dans laquelle les valeurs propres et les vecteurs propres constituent les éléments de ces matrices. La compréhension de la décomposition de la matrice permet aux ingénieurs en apprentissage automatique et en science des données de disposer d'une base mathématique pour comprendre des méthodes telles que la réduction de la dimension et l'approximation de la matrice. Après avoir lu cet article, suivez le cours d'algèbre linéaire pour la science des données en R afin de vous familiariser avec les sujets mathématiques centraux qui sous-tendent la science des données.
Qu'est-ce que l'Eigendecomposition ?
La décomposition d'Eigend est une méthode de factorisation matricielle dans laquelle une matrice carrée est factorisée (décomposée) en trois matrices multiplicatives. Cette factorisation est appelée décomposition propre car les entrées des matrices sont les valeurs propres et les vecteurs propres de la matrice carrée d'origine. Mathématiquement, une matrice carrée A peut être factorisée en trois matrices telles que :
où P est la matrice des vecteurs propres de A, Dest une matrice diagonale dont les éléments non nuls sont les valeurs propres ordonnées de la matrice, et P-1 est l'inverse de la matrice P.
Les mathématiques derrière l'Eigendecomposition
Je démontrerai, à l'aide d'un exemple, les opérations mathématiques permettant de dériver analytiquement l'eigendecomposition d'une matrice carrée. Notre matrice d'exemple est la matrice carrée 2x2 A. Si vous êtes bloqué sur les techniques de combinaison de matrices, suivez notre cours Linear Algebra for Data Science in R afin de vous sentir à l'aise avec le fonctionnement de la multiplication des matrices.
Pour effectuer la décomposition propre de la matriceA, nous devons dériver les valeurs propres et les vecteurs propres correspondants de cette matrice carrée. Nous pouvons utiliser le polynôme caractéristique de la matrice pour calculer les valeurs propres et les vecteurs propres de cette matrice. Si cette partie ne vous est pas familière, lisez Characteristic Equation : Tout ce que vous devez savoir pour la science des données d'abord.
Maintenant, d'après la définition d'un polynôme caractéristique, nous avons :
Le polynôme caractéristique de notre matrice A est alors pA(λ) = λ2 - 18λ + 56. Nous pouvons trouver les racines de ce polynôme en le mettant en équation avec zéro pour en déduire les valeurs propres :
Les valeurs propres sont donc λ1 = 14 et λ1 = 4. À partir des valeurs propres, on peut obtenir les vecteurs propres d'une matrice en utilisant (A - λI)X = 0 pour chaque valeur propre unique :
Pour λ1 = 14 nous introduisons 14 et résolvons le système d'équations homogènes :
Ce qui donne un espace propre unidimensionnel (c'est-à-dire un vecteur de base). Nous procédons de la même manière pour λ1 = 4 et obtenons :
Maintenant que nous avons obtenu les valeurs propres et les vecteurs propres de la matrice Anous pouvons écrire la décomposition propre de A comme suit :
Dans laquelle nous avons construit P en collationnant les deux vecteurs propres (c'est-à-dire en les mettant côte à côte) et nous avons placé les valeurs propres (par ordre décroissant) sur la diagonale de la matrice D.
Bien entendu, nous pouvons effectuer une décomposition propre avec un système informatique et un langage de programmation comme Python ou R. N'oubliez pas que Python et R peuvent produire des vecteurs propres normalisés (sur une échelle de 0 à 1) (c'est-à-dire une base orthonormée). Il est important de le noter lorsque l'on tente de reconstruire la matrice A à partir de PDP-1 à des fins de vérification.
Applications de l'Eigendecomposition en science des données
La décomposition d'Eigend joue un rôle important dans l'apprentissage automatique et les statistiques. Dans le domaine de l'apprentissage automatique, l'eigendecomposition est utilisée pour les méthodes de réduction des dimensions, telles que l'ACP. Dans l'ACP, nous recherchons de nouvelles dimensions (directions) pour les coordonnées originales à haute dimension qui conservent le maximum d'informations. La décomposition en valeurs propres de la matrice révèle les valeurs propres, et les vecteurs propres ayant les valeurs propres les plus élevées retiennent davantage d'informations, et sont donc désignés comme les composantes principales des données.
Exécution de la décomposition d'Eigend en Python et R
Après avoir appris à réaliser une eigendecomposition à l'aide d'un stylo et d'un papier, nous pouvons maintenant réaliser une eigendecomposition à l'aide d'un ordinateur et d'un langage de programmation, comme Python et R en quelques lignes. N'oubliez pas que les vecteurs propres calculés dans Python et R sont normalisés (par rapport aux langages ou paquets de programmation symbolique, comme SymPy dans Python).
Eigendecomposition en Python
Pour effectuer la décomposition en Python, le module NumPy doit être installé et importé dans l'environnement. Le code suivant illustre comment effectuer une eigendecomposition en Python pour la matrice carrée non symétrique A :
import numpy as np
A = np.array([[6,8], [2,12]])
eigVals, eigVecs = np.linalg.eig(A)
print(eigVals)
print(eigVecs)
[ 4. 14.]
[[-0.9701425 -0.70710678]
[ 0.24253563 -0.70710678]]
# Reconstruct the original matrix A
D = np.diag(eigVals)
A_reconstructed = eigVecs @ D @ np.linalg.inv(eigVecs)
print(A_reconstructed)
[[ 6. 8.]
[ 2. 12.]]
Eigendecomposition dans R
L'eigendecomposition dans R peut être réalisée à l'aide de la fonction intégrée eigen()
et, par conséquent, il n'est pas nécessaire d'installer et d'importer un paquet pour l'eigendecomposition de petites matrices. Le code suivant dans R exécute la décomposition propre sur la matrice A (R trie les valeurs propres par ordre décroissant, de sorte que l'ordre des vecteurs propres est différent de celui de la sortie NumPy de Python) :
A <- matrix(c(6,8,2,12), 2,2, byrow = TRUE)
print(A)
eDecomp <- eigen(A)
eigValues <- eDecomp$values
eigVectors <- eDecomp$vectors
print(eigValues)
print(eigVectors)
[1] 14 4
[,1] [,2]
[1,] -0.7071068 -0.9701425
[2,] -0.7071068 0.2425356
A_Reconstructed <- eigVectors %*% diag(eigValues) %*% (solve(eigVectors))
print(A_Reconstructed)
Show in New Window
[,1] [,2]
[1,] 6 8
[2,] 2 12
Eigendecomposition vs. Décomposition en valeurs singulières (SVD)
La décomposition d'Eigend et la décomposition en valeurs singulières (SVD) sont deux méthodes de factorisation matricielle notables qui sont utilisées dans l'apprentissage automatique et le calcul scientifique. Bien que ces deux méthodes factorisent une matrice en trois matrices, elles présentent quelques différences :
- La décomposition d'Eigend n'est applicable qu'aux matrices carrées, tandis que la SVD peut être appliquée aux matrices carrées et rectangulaires.
- Dans le cas de la SVD, les matrices résultantes comprennent les scores singuliers, tandis que celles de la décomposition en valeurs propres comprennent les valeurs propres.
- Comme la SVD peut prendre en charge des matrices non carrées, ses applications sont plus vastes que celles de la décomposition en forme d'aiguille.
Conclusion
Dans ce bref article sur l'algèbre linéaire, nous avons appris ce qu'est l'eigendecomposition, comment l'effectuer à l'aide d'un stylo et d'un papier, et comment la calculer à l'aide de Python et de R. Nous avons appris comment l'eigendecomposition est utilisée dans les algorithmes d'apprentissage automatique tels que l'ACP.
Si vous souhaitez devenir analyste de données ou data scientist, je vous recommande vivement de suivre notre cours Linear Algebra for Data Science in R afin d'acquérir de solides bases en mathématiques appliquées et en programmation. Inscrivez-vous également à notre cursus complet de scientifique en apprentissage automatique en Python pour explorer l'apprentissage supervisé, non supervisé et profond.
Devenez un scientifique ML

J'ai suivi une formation en mathématiques et en statistiques. J'ai une grande expérience de la modélisation statistique et des applications d'apprentissage automatique. En outre, j'effectue des recherches sur les mathématiques du ML.
FAQ sur l'eigendecomposition
Qu'est-ce que l'eigendecomposition ?
La décomposition propre est le processus de décomposition d'une matrice carrée en ses valeurs propres et ses vecteurs propres.
Quand l'eigendecomposition est-elle possible ?
La décomposition en forme d'aiguille n'est possible que pour les matrices carrées. Cependant, toutes les matrices carrées ne peuvent pas être décomposées de cette manière. Une matrice doit être diagonalisable, ce qui signifie généralement qu'elle doit avoir un ensemble complet de vecteurs propres linéairement indépendants. Pour les matrices qui ne répondent pas à ce critère (comme les matrices non diagonalisables ou défectueuses), l'eigendécomposition n'est pas possible au sens habituel.
Apprenez avec DataCamp
cours
Introduction aux statistiques en R
cours