Cartes auto-organisées
Cartes auto-organisées (SOM) sont une forme non supervisée d’apprentissage automatique qui peut être utilisée pour regrouper des données comportant de nombreuses fonctionnalités. Le SOM non seulement regroupe vos données, mais les « mappe » également sur une dimension inférieure (généralement deux dimensions) afin que vous puissiez visualiser plus facilement les clusters.
Traditionnellement, les SOM sont expliqués comme une forme de réseau neuronal artificiel où les fonctionnalités sont des entrées et les clusters sont des sorties. Mais à peu près tout ce qui concerne la façon dont un SOM est formé et structuré est différent à partir des réseaux de neurones feedforward traditionnels, même si certains termes sont les mêmes. Donc, si vous commencez avec une page vierge en termes de réseau neuronal, vous pourrez toujours suivre cela. 
Pour faciliter les choses, je vais définir d'emblée quelques termes et ce qu'ils signifient :
Nœud . Nous les appelons nœuds parce que nous empruntons des termes aux réseaux de neurones, mais les nœuds des SOM représentent les centres de chacun de nos clusters. Le nombre de nœuds dont vous disposez correspond au nombre de clusters dont vous disposerez.
Poids . Nous empruntons également le terme poids aux réseaux de neurones, mais les poids dans les SOM sont différents. Les poids représentent la position spatiale du nœud (comme dans K-Means, nous avons des centres de cluster). Les poids auront la même dimension que nos vecteurs de données.
Quartier . Le voisinage d’un nœud correspond à tous les nœuds qui en sont suffisamment proches. Le degré de proximité « suffisamment » changera à mesure que nous entraînerons notre SOM.
Taux d'apprentissage . Le taux d'apprentissage reflète dans quelle mesure nous modifierons le poids de nos nœuds à chaque itération. Des taux d’apprentissage élevés signifient que nos poids peuvent fluctuer énormément. Des taux d'apprentissage très faibles signifient que nos poids ne changeront pas beaucoup par rapport à leurs valeurs initiales.
Treillis/Carte. La disposition/grille des nœuds dans notre carte.

SOM à apprentissage incrémentiel
Pour vous donner une meilleure idée générale de ce que font les SOM, nous commencerons par examiner les SOM formés de manière itérative, ce qui nous permettra de voir chaque étape de la création des SOM une par une. Ce n'est pas la méthode qui JMP met en oeuvre. Pour être efficace sur le plan informatique, JMP entraîne ses SOM avec le méthode par lots, que nous verrons ci-dessous.
Aperçu . Il y a cinq étapes principales pour entraîner un SOM de manière itérative :
- Initialiser les poids des nœuds SOM. Cela peut être effectué de manière aléatoire ou des poids de départ particuliers peuvent être choisis afin qu'ils soient répartis efficacement sur toutes les valeurs d'entrée possibles (ce que fait JMP).
- Choisir un point de données aléatoire à partir de votre ensemble de données.
- Calculer de quel nœud le point de données est le plus proche . Nous pouvons le faire en calculant la distance entre notre point de données et le poids de chaque nœud. Le nœud le plus proche est appelé le Meilleure unité correspondante ( BMU pour faire court).
- Une fois qu'on connaît le BMU, nous calculons quels nœuds sont dans le voisinage du BMU . En d’autres termes, quels nœuds sont suffisamment proches du BMU sur la carte.
- Nous mettre à jour le poids du BMU et tous ses voisins afin que leurs poids soient plus similaires à ceux de notre point de données. Essentiellement, nous améliorons l’adéquation de nos clusters à nos données. Les nœuds plus éloignés du BMU sont moins modifiés que les nœuds proches du BMU (et du BMU lui-même).
Nous répétons les étapes 2 à 5 jusqu'à ce que nous ayons atteint notre nombre maximum d'itérations ou que les poids de nos nœuds cessent de changer.
En profondeur . Examinons de plus près les étapes 3 à 5 pour comprendre ce qui se passe de manière plus intuitive.
Avant de commencer, ne laissez pas les mathématiques vous empêcher de lire cette section . Je vais vous montrer des formules, mais ce n'est pas grave si vous ne comprenez pas tous les mathématiques, tant que vous connaissez l'idée générale derrière pourquoi nous utilisons ce calcul.
Trouver le BMU . Il existe de nombreuses façons de calculer la distance entre deux vecteurs à n dimensions ; généralement avec les SOM, vous pouvez voir des mesures telles que la distance euclidienne ou la distance cosinus.


Dans ce cas, nous allons utiliser la distance euclidienne. Pour calculer le BMU, nous calculons la distance euclidienne entre notre vecteur de données sélectionné et chacun des vecteurs de poids de nos nœuds. Le BMU a la plus petite distance.
Calcul des quartiers . La mise à jour de plusieurs nœuds/centres de cluster sépare les SOM des méthodes plus simples telles que K-Means. Non seulement nous allons modifier le poids de notre BMU pour le rapprocher du vecteur de données, mais nous allons également modifier les nœuds que nous pensons suffisamment proches du BMU.
Les nœuds sont considérés comme faisant partie du voisinage d'une BMU s'ils se trouvent dans un certain rayon de la BMU. En d’autres termes, si un nœud est à l’intérieur d’un cercle de rayon, r , centré au BMU, il est considéré comme un voisin.
Dans un premier temps, nous souhaitons utiliser un quartier de grande taille et modifier de nombreux nœuds. Mais, au fil du temps, nous souhaitons que nos quartiers deviennent plus petits afin de pouvoir « peaufiner » davantage notre SOM. Pensez au fait que, lors du ponçage de quelque chose, nous commençons souvent avec du papier de verre à gros grain et progressons vers du papier de verre à grain plus fin.
Mathématiquement, nous pouvons y parvenir en utilisant une formule pour le rayon de notre quartier, r , cela dépend du temps et diminue à mesure que nous continuons à entraîner notre SOM. A terme, le quartier sera si petit qu'il ne contiendra que le BMU.
Mise à jour des poids des nœuds . Une fois que nous savons quels poids de nœuds nous souhaitons mettre à jour, nous calculons dans quelle mesure les modifier. Les poids des nœuds les plus proches du BMU changeront *le plus*, et les nœuds qui se trouvent tout en bordure de notre quartier changeront très peu. Mais tous les poids des nœuds seront rapprochés du vecteur de données actuel.
Nous le faisons en utilisant cette formule (ne vous inquiétez pas, je vais vous expliquer les différentes parties dans un instant) :

Les W représentent le poids du nœud. W(t+1) est notre mis à jour poids, W(t) est notre actuel poids. Si nous simplifions un instant la dernière partie du membre de droite, nous pouvons voir que le nouveau poids mis à jour est notre ancien poids multiplié par certains. ajustement .

(V(t) - W(t)) est la distance entre notre vecteur de données et le poids actuel du nœud. Cela montre que notre ajustement dépendra de la distance qui sépare le vecteur de données et le nœud.

L(t) est le taux d'apprentissage. Tout comme notre fonction de voisinage (en fait EXACTEMENT comme notre fonction de rayon de quartier…), notre taux d'apprentissage commence à une valeur relativement élevée, , et diminue avec le temps (la partie exponentielle le fait pour nous.)

Lorsque nous commençons à entraîner notre SOM pour la première fois, notre taux d'apprentissage est élevé, mais avec le temps, nous voulons que le poids de nos nœuds soit plus stable, nous réduisons donc notre taux d'apprentissage.

Non seulement le taux d’apprentissage diminue au fil du temps temps , mais la modification du poids de nos nœuds diminue également à mesure que le nœud devient plus loin de notre BMU.
est un noyau gaussien, qui représente mathématiquement cette désintégration. ( dist est la distance entre le nœud que nous modifions et le BMU sur la carte.)

Pour un rayon donné, r(t), le noyau gaussien aura cette forme :
Lorsque la distance entre le nœud que nous mettons à jour et le BMU est grande, sera petit. À l'inverse, lorsque le nœud que nous mettons à jour est proche du BMU, sera plus grand.
Nous avons enfin déconstruit toute la formule !

Réviser:
W(t) est le poids actuel d'un nœud.

provoque le changement des nœuds les plus éloignés du BMU moins que les nœuds proches du BMU (et du BMU lui-même).
L(t) est notre taux d'apprentissage décroissant. Au fil du temps, nous « peaufinons » et apportons des changements plus mineurs qu'au début de la formation.
V(t) - W(t) est la distance entre le vecteur de données et le poids du nœud (tous deux à n dimensions). Plus la distance est grande, plus les choses vont changer.
Si vous êtes arrivé jusqu'ici, vous méritez une pause ! Nous avons examiné la manière dont les SOM sont formés de manière itérative. Cela nous a montré les idées générales qui rendent les SOM uniques : à savoir la façon dont nous mettons à jour les poids de plusieurs nœuds en fonction de le temps, la distance par rapport au BMU et la distance entre le vecteur de données et le poids du nœud.
Si vous avez déjà entendu parler des SOM ailleurs, ce qui passionne les gens, c'est que les SOM « préservent la topologie », ce qui n'est qu'une façon élégante de dire que les nœuds qui sont proches les uns des autres dans un espace multidimensionnel le seront également dans notre SOM. grille une fois que nous l'avons entraînée. Cela nous aide à visualiser nos données à l'aide de la grille SOM car il est facile de représenter graphiquement les choses en deux dimensions... mais beaucoup plus difficile en plusieurs dimensions.
L'apprentissage de la formation itérative SOM est utile pour comprendre ces propriétés, mais ce n'est pas efficace sur le plan informatique. C'est pourquoi JMP utilise le lot méthode de formation pour effectuer réellement les calculs SOM.
Apprentissage par lots SOM
Cet algorithme est celui décrit sur le site JMP. Au lieu d'entraîner notre SOM un vecteur de données à la fois, nous pouvons utiliser tous les vecteurs de données à la fois !
Voici les étapes :
- Initialiser les poids des nœuds SOM (c'est pareil dans la méthode itérative)
- Tout à la fois, calculer les BMU pour chaque vecteur de données de notre ensemble de formation.
- Calculer les nouveaux poids des nœuds en utilisant cette formule :

est le nombre de vecteurs de données dont le BMU est le nœud j,
est la moyenne de tous ces vecteurs de données et est la fonction de voisinage qui décide quels nœuds sont modifiés et dans quelle mesure. C'est semblable au
dans notre algorithme de formation incrémentielle.
4. Répétez 2 et 3 jusqu'à ce que notre SOM ait convergé.
Les calculs peuvent être plus difficiles à suivre lorsqu'ils se produisent d'un seul coup, mais le principe de base de l'algorithme d'apprentissage par lots est qu'au lieu de mettre à jour nos nœuds en réponse à un vecteur de données, nous les mettons à jour en réponse à tous les vecteurs de données à la fois (un peu comme K-Means…). Et heureusement pour vous, cette méthode accélère souvent le temps nécessaire à JMP pour former votre SOM.
Dans JMP
Dans JMP, l'option SOM se trouve dans le menu K-Means. Utilisons un SOM pour regrouper des hamburgers de restauration rapide provenant de divers restaurants américains. Aller à Analyse > Clustering > K-Means . La fenêtre K-Means Cluster apparaîtra. Cliquez et faites glisser toutes les variables que vous souhaitez utiliser vers le Oui case et cliquez sur D'ACCORD .
Dans le panneau de configuration, il y a un menu déroulant pour la méthode. Choisir Carte auto-organisée . De là, vous pouvez choisir la taille de votre grille. Nous ferons 2x2, ce qui nous donne quatre nœuds disposés en forme rectangulaire. Cliquez sur ALLER .
Notre sortie nous montre automatiquement les moyennes de chacun de nos quatre clusters. Nous pouvons enregistrer ces affectations de cluster en accédant au triangle rouge sous notre menu SOM Grid et en sélectionnant « Enregistrer les clusters ». Dans ce même menu, nous pouvons également sélectionner « Bi-intrigue » pour voir une représentation visuelle de notre SOM. JMP tracera les nœuds/clusters en fonction des deux premiers composants principaux. Ici, il semble que le cluster 1 (en haut) soit assez éloigné des trois autres. Nous pourrons vérifier cela plus tard dans Graph Builder.

Même en examinant quelques-unes de nos variables, nous pouvons commencer à comprendre pourquoi le cluster 1 était si différent. Il ne contient absolument AUCUNE protéine. Si nous examinons notre ensemble de données, nous pouvons voir que les éléments du groupe 1 ont tendance à être des desserts. 
Le cluster 2, en revanche, est riche en calories, protéines et graisses ! Vous voudrez peut-être faire attention à ces aliments si vous souhaitez rester éveillé longtemps après les avoir mangés.
Conclusion
Les cartes auto-organisées sont un outil utile pour regrouper vos données en créant une carte qui prend des données potentiellement très dimensionnelles et en les mappant sous une forme 2D beaucoup plus gérable. Dans JMP , les SOM sont tout aussi faciles à mettre en œuvre que les K-Means (même si les calculs derrière cela sont beaucoup plus compliqués), alors qu'avez-vous à perdre en les essayant ?
Cartes auto-organisées (SOM) sont une forme non supervisée d’apprentissage automatique qui peut être utilisée pour regrouper des données comportant de nombreuses fonctionnalités. Le SOM non seulement regroupe vos données, mais les « mappe » également sur une dimension inférieure (généralement deux dimensions) afin que vous puissiez visualiser plus facilement les clusters.
Re : Cartes auto-organiséesSalut Chelsea
avez-vous un exemple sur la façon d'utiliser le SOM dans JMP pour la réduction de dimensionnalité ?
J'utilise généralement SOM pour le clustering mais je sais qu'il peut également être utilisé pour réduire le nombre de prédicteurs.
Merci
Félice