PC & Mobile

Analyse en composantes principales déchiffrée – Big Data Science SFU – Moyenne

Analyse en composantes principales déchiffrée - Big Data Science SFU - Moyenne


Dans machine learning, nous devons souvent traiter des données de grande dimension. Mais toutes les caractéristiques que nous utilisons dans notre modèle peuvent en réalité ne pas être liées à la variable de réponse. L'ajout de nombreuses fonctionnalités dans l'espoir que notre modèle apprendrait mieux et donnerait des résultats précis aboutit souvent à un problème que nous appelons généralement «la malédiction de la dimensionnalité', quels États:

À mesure que le nombre d'entités ou de dimensions augmente, la quantité de données à généraliser avec précision croît de manière exponentielle.

Pour surmonter ce problème, nous devons identifier les caractéristiques les plus importantes de notre jeu de données. Une telle méthode pour identifier les principales caractéristiques de l'ensemble de données, réduisant ainsi la dimensionnalité de l'ensemble de données, est l'analyse en composantes principales (ACP).

source: https://www.youtube.com/watch?v=f1fXCRtSUWU

Dans la vidéo ci-dessus, réfléchissez à la manière dont une image plus grande du chien est déchiquetée à plusieurs reprises et réattachée pour former quatre images plus petites du même chien. Intuitivement, la sélection des fonctionnalités appropriées aboutirait à une forme de dimension inférieure sans perdre beaucoup d'informations. PCA souligne cette variation et met en évidence les modèles dominants dans un jeu de données.

Qu'est-ce que PCA? 🤔

PCA utilise un grand ensemble de variables et utilise les dépendances entre ces variables pour le représenter sous une forme plus gérable et de dimension inférieure, sans perdre trop d'informations. La PCA est un bon outil d’exploration des données et est souvent utilisée dans le cadre d’une analyse exploratoire des données (EDA).

Supposons que nous ayons n observations et variables de notre ensemble de données et nous souhaitons étudier la relation entre différentes variables dans le cadre de l’EDA. Pour une plus grande valeur de , disons 60 ans, nous obtenons d (d-1) / 2 deux- diagrammes de dispersion tridimensionnelle. Un tel nombre de parcelles (1770, dans ce cas) rend difficile l'identification de la relation entre les caractéristiques. De plus, ces graphiques 2D ne contiennent qu'une fraction de l’information totale présente dans le jeu de données.

C'est à ce moment que la PCA entre en scène. La PCA est une technique pour extraction de caractéristiques- il combine donc les variables d’entrée de manière spécifique, puis supprime les variables «moins importantes» tout en conservant les parties les plus précieuses (ou composants principaux ) de toutes les variables!

Composantes principales dites-vous?

Un composant principal est une combinaison linéaire normalisée des entités d'origine du jeu de données. Supposons que nous commençons par dimension d vecteurs et veulent les résumer en se projetant dans un dimension k sous-espace tel que les axes du nouveau sous-espace pointent dans les directions de la variance la plus élevée des données. Notre résultat final serait la projection des vecteurs originaux sur kdirections, désignées comme Composants principaux(PC).

Fig. 1: Tracé entre les dépenses publicitaires (en milliers de dollars) et la population (en milliers de dollars) tiré d'un sous-ensemble des données publicitaires (ISLR) pour 100 villes. Le point bleu indique la moyenne (μ).

Comme le montre l'intrigue (Fig. 1) , la premier composant principal (la ligne verte continue) direction a la variance maximale des données et définit également la ligne la plus proche de toutes les n des observations. Le premier composant principal capture la plupart des informations contenues dans les fonctionnalités, de sorte que plus la variabilité capturée par le premier PC est grande, plus les informations capturées par composant sont importantes.

Fig. 2: Premier et deuxième composants principaux dans un sous-ensemble des données publicitaires (ISLR).

La direction du deuxième composante principale est donné par la ligne pointillée bleue (Fig. 2). C'est également une combinaison linéaire des caractéristiques d'origine qui capture la variance restante dans le jeu de données, de sorte que la corrélation entre la première et la deuxième composante principale est égale à zéro et que leurs directions sont donc orthogonales ou perpendiculaires.

De même, pour caractéristiques de notre jeu de données, nous pouvons construire jusqu'à composantes principales distinctes.

Mais de combien de composants principaux avons-nous besoin?

Choisir le bon nombre de composants principaux est essentiel pour assurer l'efficacité de la PCA. Un ensemble de données contenant n observations et comporte des comptes pour min (n - 1, d) composantes principales distinctes. Mais nous ne nous intéressons qu'aux quelques premiers composants importants qui suffisent à expliquer une bonne quantité de variation dans l'ensemble de données.

Une façon de déterminer cela consiste à examiner le cumul rapport de variance expliqué qui est fonction du nombre de composants. UNE éboulis représente ce rapport expliqué par chacune des composantes principales. Les coudes de la parcelle indiquent le nombre optimal de composantes principales.

Fig. 3: Ratio de variance expliquée cumulative après PCA sur le jeu de données de reconnaissance de visage LFW.

La courbe illustrée à la figure 3 quantifie la part de la variance totale, à 200 dimensions, dans la première n Composants. Par exemple, nous voyons qu'avec les faces, les 40 premières composantes contiennent plus de 80% de la variance, alors qu'il faut environ 150 composantes pour décrire près de 100% de la variance.

Où utiliseriez-vous PCA?

La PCA a été largement utilisée dans de nombreux domaines, tels que la vision par ordinateur et la compression d'images. Il est principalement utilisé pour les applications suivantes:

  • Visualisation de données: PCA vous permet de visualiser des objets de grande dimension dans une dimension inférieure.
  • Moindres carrés partiels: Les caractéristiques de la PCA peuvent être utilisées comme base pour un modèle linéaire aux moindres carrés.
  • Réduction de la dimensionnalité: Réduit la dimensionnalité des fonctionnalités en ne perdant qu’une petite quantité d’informations.
  • Détection des valeurs aberrantes (amélioration de la qualité des données): Projette un ensemble de variables dans moins de dimensions et met en évidence les valeurs superflues.

Comment l'APC est-elle formulée?

Étant donné une matrice X, qui correspond à n observations avec fonctionnalités, et une entrée k, le principal objectif de la PCA est de décomposer la matrice X en deux matrices plus petites, Z et W, tel que X = ZW, Z a des dimensions n * k et W a des dimensions k * d (voir Fig. 4). Chaque rangée de Z est un facteur de charge. Chaque rangée de W s'appelle un composant principal.

Fig. 4: Matrice de décomposition PCA X en deux matrice plus petite Z et W.

En ACP, nous minimisons l’erreur quadratique de la fonction objectif suivante:

Il existe trois approches courantes pour résoudre l’ACP, décrites ci-dessous.

  1. Décomposition en valeurs singulières (SVD)
    Cette approche utilise d’abord l’algorithme de décomposition en valeurs singulières (SVD) pour trouver une W. Ensuite, il utilise l'orthogonal Wpour calculer Z comme suit.
Analyse en composantes principales déchiffrée Big Data Science SFU Moyenne - Analyse en composantes principales déchiffrée - Big Data Science SFU - Moyenne
1552612282 404 Analyse en composantes principales déchiffrée Big Data Science SFU Moyenne - Analyse en composantes principales déchiffrée - Big Data Science SFU - Moyenne

2. Minimisation alternée
C'est une approche itérative qui alterne entre:

  • Fixation Zet trouver des valeurs optimales pour W
1552612282 383 Analyse en composantes principales déchiffrée Big Data Science SFU Moyenne - Analyse en composantes principales déchiffrée - Big Data Science SFU - Moyenne
  • Fixation Wet trouver des valeurs optimales pour Z
1552612282 814 Analyse en composantes principales déchiffrée Big Data Science SFU Moyenne - Analyse en composantes principales déchiffrée - Big Data Science SFU - Moyenne

3. Descente du gradient stochastique
C’est une approche itérative, car lorsque la matrice X est très grand. A chaque itération, il choisit un exemple aléatoire je et caractéristiques j et mises à jour W et Z comme

La PCA en action: réduction des fonctionnalités

Nous savons déjà que, par définition, PCA élimine les caractéristiques les moins importantes et aide à produire des représentations visuelles de celles-ci. Voyons comment cela s’applique réellement à un problème de réduction de fonctionnalités dans la pratique. Pour cet exemple, nous allons utiliser le jeu de données Iris.

Les données contiennent quatre attributs: Longueur des sépales, largeur des sépales, longueur des pétales, largeur des pétales à travers trois espèces à savoir Setosa, Versicolor, Virginica

Après application de la PCA, la variance à 95% est capturée par 2 composantes principales.

PCA en action: extraction de fonctionnalités

Dans un exemple précédent, nous avons vu comment l’ACP peut être un outil utile pour la visualisation et la réduction des fonctionnalités. Dans cet exemple, nous allons explorer PCA en tant que extraction de caractéristiquestechnique. Pour cela, nous allons utiliser le jeu de données de reconnaissance faciale LFW.

Les images contiennent une grande quantité d'informations, et le traitement de toutes les caractéristiques extraites de telles images nécessite souvent une énorme quantité de ressources de calcul. Nous abordons cette question en identifiant une combinaison des fonctionnalités les plus importantes qui décrivent avec précision le jeu de données.

Télécharger et afficher des données

Nous allons charger les données de visages de sklearn.datasets.fetch_lfw_people . Le jeu de données consiste en 1867 images ayant chacune une résolution de 62x47.

importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
avertissements d'importation
from sklearn.datasets import fetch_lfw_people
# Télécharger le jeu de données
avec warnings.catch_warnings ():
warnings.filterwarnings ("ignore", category = DeprecationWarning)
faces = fetch_lfw_people (min_faces_per_person = 40)
# images de parcelle
fig, axes = plt.plots (3, 10, figsize = (12, 4),
subplot_kw = {'xticks':[]yticks:[]},
gridspec_kw = dict (hspace = 0.1, wspace = 0.1)
pour i, ax en énumérer (axes.flat):
ax.imshow (faces.data[i].reshape (62, 47), cmap = 'bone')

Appliquer PCA sur le jeu de données

Pour produire une démonstration rapide, nous utilisons simplement le module PCA de scikit-learn pour réduire les dimensions du jeu de données de faces et sélectionner 150 composants (espaces propres) afin de maximiser la variance du jeu de données.

depuis sklearn.decomposition import PCA
faces_pca = PCA (n_components = 150, svd_solver = ’randomized’). fit (faces.data)
# Composants principaux de la parcelle
fig, axes = plt.plots (3, 10, figsize = (12, 4),
subplot_kw = {'xticks':[]yticks:[]},
gridspec_kw = dict (hspace = 0.1, wspace = 0.1)
pour i, ax en énumérer (axes.flat):
ax.imshow (faces_pca.components_[i].reshape (62, 47), cmap = 'bone')

Nous allons maintenant utiliser les principaux composants pour former une image projetée de faces et la comparer avec le jeu de données d'origine.

composants = faces_pca.transform (faces.data)
projeté = faces_pca.inverse_transform (composants)
# Tracer les résultats
fig, ax = plt.subjects (2, 15, figsize = (15, 2.5),
subplot_kw = {'xticks':[], 'Yticks':[]},
gridspec_kw = dict (hspace = 0.1, wspace = 0.1)
pour i dans la gamme (15):
hache[0, i].imshow (faces.data[i].reshape (62, 47), cmap = ’binary_r’)
hache[1, i].imshow (projeté[i].reshape (62, 47), cmap = ’binary_r’)

hache[0, 0].set_ylabel ('résolution complète')
hache[1, 0].set_ylabel ('150-D nprojections');

Comme nous pouvons le voir, les principales caractéristiques extraites à l'aide de PCA capturent l'essentiel de la variance dans le jeu de données. Par conséquent, les projections formées par ces 150 composantes principales sont assez proches des images du jeu de données d'origine.

Choses à retenir

Voici quelques points importants à retenir lors de la réalisation de la PCA:

  1. Avant de procéder à la PCA, les données doivent d’abord être normalisées. Cela est important car différentes variables de l'ensemble de données peuvent être mesurées dans différentes unités. Une ACP sur un jeu de données non normalisé donne des valeurs propres plus élevées pour la variable dont la variance maximale correspond au vecteur propre de son premier PC.
  2. La PCA ne peut être appliquée qu’à des données numériques. Ainsi, si les données comportent également des variables catégoriques, elles doivent être converties en valeurs numériques. De telles variables peuvent être représentées à l'aide d'un 1 de N schéma de codage sans imposer un ordre artificiel.
  3. Cependant, aucune ACP ne doit être effectuée lorsque la plupart des fonctionnalités indépendantes sont catégoriques. CATPCA peut plutôt être utilisé pour convertir des catégories en valeurs numériques grâce à une mise à l’échelle optimale.

Qu'avons-nous appris?

Nous avons donc commencé avec le malédictionde dimensionnalité et discuté de l’efficacité de l’analyse en composantes principales dans la réduction de la dimensionnalité, la visualisation de données dans une EDA et l’extraction d’entités. S'il est mis en œuvre correctement, il peut être efficace dans une grande variété de disciplines.

Mais la PCA a aussi des limites à prendre en compte, car des modèles très corrélés peuvent ne pas être résolus, car toutes les composantes principales ne sont pas corrélées, la structure des données doit être linéaire et la PCA a tendance à être influencée par des valeurs aberrantes. D’autres variantes de l’ACP peuvent être explorées pour s’attaquer à ces limitations, mais laissons cela de côté pour plus tard. 🤓

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close