IA 101

Qu’est-ce que la rĂ©duction de dimensionnalitĂ© ?

mm

Qu’est-ce que la réduction de dimensionnalité ?

La réduction de dimensionnalité est un processus utilisé pour réduire la dimensionnalité d’un ensemble de données, en prenant de nombreuses fonctionnalités et en les représentant sous forme de moins de fonctionnalités. Par exemple, la réduction de dimensionnalité pourrait être utilisée pour réduire un ensemble de données de vingt fonctionnalités à seulement quelques fonctionnalités. La réduction de dimensionnalité est couramment utilisée dans les tâches d’apprentissage non supervisé pour créer automatiquement des classes à partir de nombreuses fonctionnalités. Afin de mieux comprendre pourquoi et comment la réduction de dimensionnalité est utilisée, nous allons examiner les problèmes associés aux données à haute dimension et les méthodes les plus populaires de réduction de dimensionnalité.

Plus de dimensions entraîne une surajustement

La dimensionnalité fait référence au nombre de fonctionnalités / colonnes dans un ensemble de données.

Il est souvent supposé que, en apprentissage automatique, plus de fonctionnalités sont meilleures, car cela crée un modèle plus précis. Cependant, plus de fonctionnalités ne se traduisent pas nécessairement par un meilleur modèle.

Les fonctionnalités d’un ensemble de données peuvent varier considérablement en termes d’utilité pour le modèle, avec de nombreuses fonctionnalités ayant peu d’importance. De plus, plus l’ensemble de données contient de fonctionnalités, plus d’échantillons sont nécessaires pour garantir que les différentes combinaisons de fonctionnalités sont bien représentées dans les données. Par conséquent, le nombre d’échantillons augmente en proportion avec le nombre de fonctionnalités. Plus d’échantillons et plus de fonctionnalités signifient que le modèle doit être plus complexe, et à mesure que les modèles deviennent plus complexes, ils deviennent plus sensibles à la surajustement. Le modèle apprend les modèles dans les données de formation trop bien et il échoue à généraliser aux données hors échantillon.

La réduction de la dimensionnalité d’un ensemble de données a plusieurs avantages. Comme mentionné, les modèles plus simples sont moins sujets à la surajustement, car le modèle doit faire moins d’hypothèses sur la façon dont les fonctionnalités sont liées les unes aux autres. De plus, moins de dimensions signifient moins de puissance de calcul nécessaire pour former les algorithmes. De même, moins d’espace de stockage est nécessaire pour un ensemble de données qui a une dimensionnalité plus petite. La réduction de la dimensionnalité d’un ensemble de données peut également vous permettre d’utiliser des algorithmes qui ne sont pas adaptés aux ensembles de données avec de nombreuses fonctionnalités.

Méthodes courantes de réduction de dimensionnalité

La réduction de dimensionnalité peut être effectuée par sélection de fonctionnalités ou ingénierie de fonctionnalités. La sélection de fonctionnalités consiste à identifier les fonctionnalités les plus pertinentes de l’ensemble de données, tandis que l’ingénierie de fonctionnalités est le processus de création de nouvelles fonctionnalités en combinant ou en transformant d’autres fonctionnalités.

La sélection et l’ingénierie de fonctionnalités peuvent être effectuées de manière programmatique ou manuelle. Lors de la sélection et de l’ingénierie manuelles de fonctionnalités, la visualisation des données pour découvrir les corrélations entre les fonctionnalités et les classes est typique. La réalisation de la réduction de dimensionnalité de cette manière peut être assez chronophage et donc certaines des méthodes les plus courantes de réduction de dimensionnalité impliquent l’utilisation d’algorithmes disponibles dans des bibliothèques comme Scikit-learn pour Python. Ces algorithmes courants de réduction de dimensionnalité incluent : l’analyse en composantes principales (ACP), la décomposition en valeurs singulières (SVD) et l’analyse discriminante linéaire (ADL).

Les algorithmes utilisés dans la réduction de dimensionnalité pour les tâches d’apprentissage non supervisé sont généralement l’ACP et la SVD, tandis que ceux utilisés pour la réduction de dimensionnalité d’apprentissage supervisé sont généralement l’ADL et l’ACP. Dans le cas des modèles d’apprentissage supervisé, les nouvelles fonctionnalités générées sont simplement alimentées dans le classificateur d’apprentissage automatique. Notez que les utilisations décrites ici ne sont que des cas d’utilisation généraux et non les seules conditions dans lesquelles ces techniques peuvent être utilisées. Les algorithmes de réduction de dimensionnalité décrits ci-dessus sont simplement des méthodes statistiques et elles sont utilisées en dehors des modèles d’apprentissage automatique.

Analyse en composantes principales

Photo : Matrice avec composantes principales identifiées

L’analyse en composantes principales (ACP) est une méthode statistique qui analyse les caractéristiques / fonctionnalités d’un ensemble de données et résume les fonctionnalités qui sont les plus influentes. Les fonctionnalités de l’ensemble de données sont combinées ensemble en représentations qui conservent la plupart des caractéristiques des données, mais sont réparties sur moins de dimensions. Vous pouvez penser à cela comme « écraser » les données d’une représentation à haute dimension à une représentation avec seulement quelques dimensions.

Par exemple, imaginez les différentes manières dont on pourrait décrire le vin. Même si il est possible de décrire le vin en utilisant de nombreuses fonctionnalités très spécifiques comme les niveaux de CO2, les niveaux d’aération, etc., de telles fonctionnalités spécifiques peuvent être relativement inutiles lorsqu’il s’agit d’identifier un type spécifique de vin. Au lieu de cela, il serait plus prudent d’identifier le type en fonction de fonctionnalités plus générales comme le goût, la couleur et l’âge. L’ACP peut être utilisée pour combiner des fonctionnalités plus spécifiques et créer des fonctionnalités qui sont plus générales, utiles et moins susceptibles de provoquer une surajustement.

L’ACP est effectuée en déterminant comment les fonctionnalités d’entrée varient par rapport à la moyenne les unes par rapport aux autres, en déterminant s’il existe des relations entre les fonctionnalités. Pour ce faire, une matrice de covariance est créée, établissant une matrice composée des covariances par rapport aux paires possibles de fonctionnalités de l’ensemble de données. Cela est utilisé pour déterminer les corrélations entre les variables, une covariance négative indiquant une corrélation inverse et une covariance positive indiquant une corrélation positive.

Les composantes principales (les plus influentes) de l’ensemble de données sont créées en créant des combinaisons linéaires des variables initiales, ce qui est fait avec l’aide de concepts d’algèbre linéaire appelés valeurs propres et vecteurs propres. Les combinaisons sont créées de telle sorte que les composantes principales soient non corrélées les unes avec les autres. La plupart des informations contenues dans les variables initiales sont compressées dans les premières composantes principales, ce qui signifie que de nouvelles fonctionnalités (les composantes principales) ont été créées qui contiennent les informations de l’ensemble de données initial dans un espace à dimension plus petite.

Décomposition en valeurs singulières

Photo : Par Cmglee – Travail personnel, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

La décomposition en valeurs singulières (SVD) est utilisée pour simplifier les valeurs à l’intérieur d’une matrice, en réduisant la matrice à ses parties constituantes et en rendant les calculs avec cette matrice plus faciles. La SVD peut être utilisée pour les matrices à valeurs réelles et complexes, mais pour les besoins de cette explication, nous allons examiner comment décomposer une matrice de valeurs réelles.

Supposons que nous ayons une matrice composée de données à valeurs réelles et que notre objectif est de réduire le nombre de colonnes / fonctionnalités dans la matrice, semblable à l’objectif de l’ACP. Comme l’ACP, la SVD va compresser la dimensionnalité de la matrice tout en conservant autant que possible de la variabilité de la matrice. Si nous voulons opérer sur la matrice A, nous pouvons représenter la matrice A comme trois autres matrices appelées U, D et V. La matrice A est composée des éléments x * y d’origine, tandis que la matrice U est composée d’éléments X * X (c’est une matrice orthogonale). La matrice V est une autre matrice orthogonale contenant des éléments y * y. La matrice D contient les éléments x * y et c’est une matrice diagonale.

Pour décomposer les valeurs de la matrice A, nous devons convertir les valeurs singulières originales en valeurs diagonales trouvées dans une nouvelle matrice. Lorsque nous travaillons avec des matrices orthogonales, leurs propriétés ne changent pas si elles sont multipliées par d’autres nombres. Par conséquent, nous pouvons approximer la matrice A en tirant parti de cette propriété. Lorsque nous multiplions les matrices orthogonales ensemble avec une transposée de la matrice V, le résultat est une matrice équivalente à notre matrice A d’origine.

Lorsque la matrice A est décomposée en matrices U, D et V, elles contiennent les données trouvées dans la matrice A. Cependant, les colonnes les plus à gauche des matrices contiendront la majorité des données. Nous pouvons prendre seulement ces premières colonnes et avoir une représentation de la matrice A qui a beaucoup moins de dimensions et la plupart des données à l’intérieur de A.

Analyse discriminante linéaire

 

Gauche : Matrice avant LDA, Droite : Axe après LDA, maintenant séparable

L’analyse discriminante linéaire (ADL) est un processus qui prend des données d’un graphique multidimensionnel et les projette sur un graphique linéaire. Vous pouvez vous imaginer cela en pensant à un graphique bidimensionnel rempli de points de données appartenant à deux classes différentes. Supposons que les points soient éparpillés de telle sorte qu’aucune ligne ne puisse être tracée qui les sépare nettement. Pour gérer cette situation, les points trouvés dans le graphique 2D peuvent être réduits à un graphique 1D (une ligne). Cette ligne aura tous les points de données répartis le long d’elle et elle peut espérer être divisée en deux sections qui représentent la meilleure séparation possible des données.

Lors de la réalisation de l’ADL, il y a deux objectifs principaux. Le premier objectif est de minimiser la variance pour les classes, tandis que le deuxième objectif est de maximiser la distance entre les moyennes des deux classes. Ces objectifs sont réalisés en créant un nouvel axe qui existera dans le graphique 2D. Le nouvel axe créé agit pour séparer les deux classes en fonction des objectifs décrits précédemment. Une fois l’axe créé, les points trouvés dans le graphique 2D sont placés le long de l’axe.

Il y a trois étapes nécessaires pour déplacer les points d’origine à une nouvelle position le long du nouvel axe. Dans la première étape, la distance entre les moyennes des classes individuelles (la variance entre les classes) est utilisée pour calculer la séparabilité des classes. Dans la deuxième étape, la variance à l’intérieur des différentes classes est calculée, en déterminant la distance entre l’échantillon et la moyenne de la classe en question. Dans la dernière étape, l’espace à dimension inférieure qui maximise la variance entre les classes est créé.

La technique ADL donne les meilleurs résultats lorsque les moyennes pour les classes cibles sont éloignées les unes des autres. L’ADL ne peut pas séparer efficacement les classes avec un axe linéaire si les moyennes pour les distributions se chevauchent.

Blogueur et programmeur avec des spécialités en Machine Learning et Deep Learning sujets. Daniel espÚre aider les autres à utiliser le pouvoir de l'IA pour le bien social.