PCA à Sklearn

PCA à Sklearn
L'ACP (analyse des composants principaux) est un algorithme mathématique qui transforme les observations de variables corrélées en un ensemble de valeurs de variables linéairement non corrélées, appelées composantes principales. L'ACP est l'un des algorithmes les plus populaires pour la réduction de la dimensionnalité. Karl Pearson (Li, 1901) a inventé l'ACP en 1901, la définissant comme «Identifier les lignes et les plans de la plus proche des systèmes de points dans l'espace».

Nous discuterons des détails de l'ACP et de son implémentation à l'aide de Sklearn.

Qu'est-ce que PCA?

L'analyse des composants principaux (PCA) est une méthode de réduction des données. Lorsque vous avez beaucoup de mesures pour chaque cas, mais certains d'entre eux sont corrélés les uns avec les autres, cette méthode est utilisée. Les composants principaux utilisent la corrélation pour diminuer le nombre de variables nécessaires pour caractériser chaque situation en fonction des résultats. Mais une analyse des composantes principales révèlera probablement que, malgré les dix mesures, seules trois variables ont été mesurées. Ils sont plus susceptibles d'avoir un sprint, des sauts et des capacités de lancement - trois plutôt que dix caractéristiques. Les principaux composants fourniraient des coefficients pour chacune des dix scores, indiquant combien chaque score se déroule dans la nouvelle course, le saut et les scores de lancer. Les trois scores composites vous indiqueraient également la quantité de variation totale. Travailler avec trois variables est plus facile que de travailler avec 10, et s'ils expliquent la majorité de la fluctuation, vous avez capturé toutes les informations des dix scores en trois.

La technique devient beaucoup plus utile lorsque vous avez des centaines de mesures. Cependant, nous pouvons rencontrer un problème: certaines de nos propriétés d'entrée sont connectées. Selon la force de l'association, cela pourrait indiquer que nous incluons des dimensions supplémentaires dans nos données d'entrée lorsque nous pourrions acquérir la même quantité d'informations avec moins. PCA fournit une technique systématique pour déterminer quelles combinaisons de fonctionnalités semblent être plus responsables de la variance des données que d'autres et fournit quelques recommandations sur la réduction du nombre de dimensions dans notre entrée. Cela ne veut pas dire que PCA nous dit quelles caractéristiques ne sont pas nécessaires; Il nous montre plutôt comment intégrer les fonctionnalités dans un sous-espace plus petit sans perdre (beaucoup) d'informations. Traditionnellement, la réduction du nombre de dimensions avant de nourrir les données dans les algorithmes ML a été utile car elle réduit la complexité et le temps de traitement. Cependant, je dois souligner que l'ACP n'est pas une panacée mais un outil fantastique quand cela fonctionne.

Exemple 1

Considérez le cas de l'ensemble de données D, qui contient des données bidimensionnelles le long du y = x doubler. Ces données sont représentées en deux dimensions, avec un X et y point pour chaque point de données. Le vecteur serait identifié comme la direction de la variance maximale via PCA et ce vecteur serait utilisé comme le nouvel axe X. Nous pouvons maintenant représenter l'ensemble de données D en une seule dimension. En conséquence, PCA est une technique de réduction de la dimensionnalité axée sur la localisation des plus grands vecteurs de variance.

Exemple 2

Supposons que vos données soient le long d'une ligne en deux dimensions. Dans ce cas, PCA reconnaît rapidement que vos x et y sont associés et développe un nouveau système de coordonnées orthogonales pour maximiser la variance dans la première coordonnée. En conséquence, le deuxième composant (primaire) n'a aucune capacité prédictive et vous pouvez probablement le retirer de vos modèles sans causer trop de dégâts. Vous avez réussi à projeter deux dimensions en une seule sans perdre beaucoup d'informations dans cette méthode. Bien que vous puissiez le faire visuellement en deux dimensions, cela peut être un peu plus difficile dans le n dimension.

Caractéristiques de PCA

Transformer les données en une échelle comparable. Certaines fonctionnalités d'un ensemble de données peuvent être extrêmement élevées (1 à 100). En revanche, d'autres sont extrêmement faibles (0 à 1), ce qui a entraîné des fonctionnalités élevées ayant un impact plus important sur les prévisions de sortie que les données de fonctionnalités faibles.

Pour identifier les corrélations entre toutes les fonctionnalités, calculez la covariance des données.

Ensuite, trouvez les valeurs propres et les vecteurs propres de la matrice de covariance. Après cela, triez les vecteurs propres en diminuant les valeurs propres et en sélectionnant les V vecteurs propres avec les valeurs propres les plus élevées.

Pour transformer les échantillons sur le nouveau sous-espace, utilisez cette matrice de vecteur propre.

Il peut être utilisé pour savoir s'il existe des corrélations entre vos variables. Si vous avez des variables tridimensionnelles et que leur plan bidimensionnel le mieux ajusté les capture avec précision, alors les valeurs de la troisième dimension sont probablement une fonction linéaire des deux premiers, plus ou moins un peu de bruit gaussien.

Au lieu de transmettre des points de données en n dimension, vous pouvez utiliser l'ACP pour communiquer les coordonnées de dimension M dans un sous-espace le mieux adapté si vous avez besoin de transmettre des données (plus l'équation du sous-espace). Il peut également être utilisé pour compresser les données. Si l'ajustement est parfait, vous ne perdrez aucune information; Si c'est proche, tu perds un peu.

Étant donné que de nombreux algorithmes d'apprentissage automatique fonctionnent le mieux lorsque chaque variable ajoute de nouvelles informations, elle est fréquemment utilisée dans l'apprentissage automatique pour trouver et supprimer les variables redondantes dans votre ensemble de données.

Il ne trouve pas toujours une duplication réelle et non linéaire. Si vous interprétez statistiquement l'ACP, vous devez faire quelques hypothèses sur les relations sous-jacentes entre les variables / leur bruit. Pourtant, c'est un outil très précieux, même si certaines hypothèses ne sont pas idéales.

Implémentation de PCA dans Sklearn

Importer Numpy comme NP
de Sklearn.Décomposition Import PCA
X = np.Array ([[1, 2], [2, 1], [3, 2], [2, 3], [4, 5], [5, 4]])
PCA = PCA (n_components = 2)
PCA.ajustement (x)
Imprimer (PCA.expliqué_variance_ratio_)
Imprimer (PCA.singulier_values_)

Sortir
[0.86153846 0.13846154]
[4.3204938 1.73205081]

Conclusion

Cet article a discuté de l'analyse des composants principaux et de sa mise en œuvre à l'aide de Sklearn. Sklearn est une bibliothèque Python populaire utilisée pour développer des modèles d'apprentissage automatique. PCA réduit la malédiction de la dimensionnalité en dirigeant des données de haute dimension dans des dimensions plus basses sans perdre beaucoup d'informations. PCA peut être implémenté à l'aide de Sklearn avec le 'Sklearn.Classe de décomposition.