Table des matières:
- Considérant le modèle psychométrique
- Recherche de facteurs cachés
- Utilisation de composants, pas de facteurs
- Atteindre la réduction de la dimensionnalité
Vidéo: Cours d'ACP : théorie et pratique 2024
Les scientifiques de données peuvent utiliser Python pour effectuer l'analyse des facteurs et des composantes principales. SVD fonctionne directement sur les valeurs numériques dans les données, mais vous pouvez également exprimer les données comme une relation entre les variables. Chaque fonctionnalité a une certaine variation. Vous pouvez calculer la variabilité comme la mesure de la variance autour de la moyenne. Plus la variance est grande, plus les informations contenues dans la variable sont nombreuses.
De plus, si vous placez la variable dans un ensemble, vous pouvez comparer la variance de deux variables pour déterminer si elles corrèlent, ce qui est une mesure de la force avec laquelle elles ont des valeurs similaires.
En vérifiant toutes les corrélations possibles d'une variable avec les autres dans l'ensemble, vous pouvez découvrir que vous pouvez avoir deux types de variance:
-
Variance unique: Une certaine variance est propre à la variable à l'examen. Il ne peut pas être associé à ce qui arrive à une autre variable.
-
Variance partagée: Une partie de la variance est partagée avec une ou plusieurs autres variables, ce qui crée une redondance dans les données. La redondance implique que vous pouvez trouver la même information, avec des valeurs légèrement différentes, dans diverses caractéristiques et à travers de nombreuses observations.
Bien sûr, l'étape suivante consiste à déterminer la raison de la variance partagée. Essayer de répondre à une telle question, ainsi que de déterminer comment gérer les variances uniques et partagées, a conduit à la création d'une analyse factorielle et en composantes principales.
Considérant le modèle psychométrique
Bien avant que de nombreux algorithmes d'apprentissage automatique aient été inventés, la psychométrie , la discipline en psychologie de la mesure psychologique, tentait de trouver une solution statistique pour mesurer efficacement les dimensions dans la personnalité. La personnalité humaine, comme les autres aspects de l'être humain, n'est pas directement mesurable. Par exemple, il n'est pas possible de mesurer précisément à quel point une personne est introvertie ou intelligente. Questionnaires et tests psychologiques ne font qu'indiquer ces valeurs.
Les psychologues connaissaient la maladie vésiculeuse du sexe et essayaient de l'appliquer au problème. La variance partagée a attiré leur attention: si certaines variables sont presque les mêmes, elles devraient avoir la même origine, pensaient-elles. Les psychologues ont créé une analyse factorielle pour effectuer cette tâche! Au lieu d'appliquer SVD directement aux données, ils l'ont appliqué à une matrice nouvellement créée qui suit la variance commune, dans l'espoir de condenser toutes les informations et de récupérer de nouvelles fonctions utiles appelées fa c tors .
Recherche de facteurs cachés
Une bonne façon de montrer comment utiliser l'analyse factorielle est de commencer par l'ensemble de données Iris.
de sklearn. les jeux de données importent load_iris de sklearn. décomposition import FactorAnalysis iris = load_iris () X, y = iris. données, iris. Facteur cible = FactorAnalysis (n_components = 4, random_state = 101). fit (X)
Après avoir chargé les données et avoir stocké toutes les fonctions prédictives, la classe FactorAnalysis est initialisée avec une requête pour rechercher quatre facteurs. Les données sont ensuite ajustées. Vous pouvez explorer les résultats en observant l'attribut components_, qui renvoie un tableau contenant des mesures de la relation entre les facteurs nouvellement créés, placés en lignes, et les entités d'origine, placées dans des colonnes.
À l'intersection de chaque facteur et caractéristique, un nombre positif indique qu'une proportion positive existe entre les deux; un nombre négatif, au contraire, indique qu'ils divergent et que l'un est le contraire de l'autre.
Vous devrez tester différentes valeurs de n_components car il est impossible de connaître le nombre de facteurs présents dans les données. Si l'algorithme est requis pour plusieurs facteurs, il générera des facteurs avec des valeurs faibles dans le tableau components_.
importez des pandas comme pd print pd. DataFrame (Facteur.Composants_, Colonnes = Iris.Nom_fonction) Longueur du sépale (cm) Largeur du selle (cm) Longueur du pétale (cm) Largeur du pétale (cm) 0 0. 707227 -0. 153147 1. 653151 0. 701569 1 0. 114676 0. 159763 -0. 045604 -0. 014052 2 0. 000000 -0. 000000 -0. 000000 -0. 000000 3 -0. 000000 0. 000000 0. 000000 -0. 000000
Dans le test sur l'ensemble de données Iris, par exemple, les facteurs résultants devraient être au maximum de 2, et non de 4, car seuls deux facteurs ont des connexions significatives avec les caractéristiques d'origine. Vous pouvez utiliser ces deux facteurs comme de nouvelles variables dans votre projet, car ils reflètent une fonctionnalité invisible mais importante que les données précédemment disponibles n'ont fait qu'indiquer.
Utilisation de composants, pas de facteurs
Si un SVD pouvait être appliqué avec succès à la variance commune, vous pourriez vous demander pourquoi vous ne pouvez pas l'appliquer à toutes les variances. En utilisant une matrice de départ légèrement modifiée, toutes les relations dans les données pourraient être réduites et compressées de la même manière que la méthode SVD.
Les résultats de ce processus, qui sont assez similaires à SVD, sont appelés analyse des composantes principales (PCA). Les entités nouvellement créées sont nommées composants . Contrairement aux facteurs, les composants ne sont pas décrits comme la cause première de la structure des données, mais sont simplement des données restructurées, vous pouvez donc les voir comme une somme importante et intelligente de variables sélectionnées.
Pour les applications de science des données, PCA et SVD sont assez similaires. Cependant, PCA n'est pas affectée par l'échelle des caractéristiques d'origine (car elle fonctionne sur des mesures de corrélation qui sont toutes liées entre -1 et +1) et PCA se concentre sur la reconstruction de la relation entre les variables, offrant ainsi des résultats différents.
Atteindre la réduction de la dimensionnalité
La procédure d'obtention d'une ACP est assez similaire à l'analyse factorielle.La différence est que vous ne spécifiez pas le nombre de composants à extraire. Vous décidez plus tard du nombre de composants à conserver après avoir vérifié l'attribut explain_variance_ratio_, qui fournit une quantification de la valeur informative de chaque composant extrait. L'exemple suivant montre comment effectuer cette tâche:
à partir de sklearn. décomposition importer les pandas d'importation PCA comme pd pca = PCA (). fit (X) print 'Variance expliquée par composant:% s'% pca. expliqué_variance_ratio_ imprimer pd. DataFrame (pca. Components_, columns = iris.) Feature_names) Variance expliquée par composant: [0. 92461621 0. 05301557 0. 01718514 0. 00518309] longueur du sépale (cm) largeur du sépale (cm) longueur du pétale (cm) largeur du pétale (cm) 0 0. 361590 -0. 082269 0. 856572 0. 358844 1 -0. 656540 -0. 729712 0. 175767 0. 074706 2 0. 580997 -0. 596418 -0. 072524 -0. 549061 3 0. 317255 -0. 324094 -0. 479719 0. 751121
Dans cette décomposition de l'ensemble de données Iris, le tableau vectoriel fourni par explain_variance_ratio_ indique que la plus grande partie de l'information est concentrée dans le premier composant (92,5%). Il est donc possible de réduire l'ensemble de données entier à seulement deux composants, en fournissant une réduction du bruit et des informations redondantes de l'ensemble de données d'origine.