SlideShare una empresa de Scribd logo
1 de 29
SOMbrero : Cartes auto-organisatrices stochastiques pour l’intégration
de données numériques et non numériques
Laura Bendhaïba1
, Madalina Olteanu1
& Nathalie Villa-Vialaneix1,2
1 2
Rencontres R, 28 juin 2013
1 / 21
Plan
1 Introduction
Définition
Principe
2 Implémentation
Description
Données vectorielles
Tableaux de contingence
3 Conclusion et perspectives
2 / 21
Introduction
Introduction
Cartes auto-organisatrices (aussi appelées “cartes de Kohonen”ou SOM)
Pour données vectorielles, [Kohonen, 2001]
Pour données qualitatives, séries temporelles et, de manière plus générale, données non
euclidiennes décrites par des tableaux de dissimilarités, [Kohohen and Somervuo, 1998],
[Cottrell et al., 2012], [Olteanu and Villa-Vialaneix, 2013]
Une version SAS existe déjà pour données vectorielles et données qualitatives, mais n’est plus
maintenue depuis deux ans :
http://samos.univ-paris1.fr/Programmes-bases-sur-l-algorithme
3 / 21
Introduction Définition
Contexte
Cartes auto-organisatrices : définition
Apprentissage > Méthodes neuronales > Cartes auto-organisatrices
Algorithme différent des méthodes de classification ordinaires : respect de la topologie des
données d’origine
Projection nonlinéaire et clustering (réduction de dimension)
Généralisation des centres mobiles (version stochastique)
Vocabulaire :
Neurones
Prototypes (vecteurs-code)
4 / 21
Introduction Définition
Principe
Cartes auto-organisatrices : définition
5 / 21
Introduction Définition
Principe
Cartes auto-organisatrices : définition
5 / 21
Introduction Principe
Notations
La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone
u est associé un prototype pu (un objet dans le même espace que les données initiales; par
exemple, un vecteur numérique).
La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance
d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux.
La grille possède également une fonction de voisinage ht
(d(u, u )) telle que ht
: R+ → R+,
ht
(0) = 1 et limx→+∞ ht
(x) = 0.
L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra
étendue aux voisins)
E =
U
i=1
U
j=1
ht
(d(i, j))
x∈Γj
x − pi
2
,
où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU.
6 / 21
Introduction Principe
Notations
La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone
u est associé un prototype pu (un objet dans le même espace que les données initiales; par
exemple, un vecteur numérique).
La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance
d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux.
La grille possède également une fonction de voisinage ht
(d(u, u )) telle que ht
: R+ → R+,
ht
(0) = 1 et limx→+∞ ht
(x) = 0.
L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra
étendue aux voisins)
E =
U
i=1
U
j=1
ht
(d(i, j))
x∈Γj
x − pi
2
,
où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU.
6 / 21
Introduction Principe
Notations
La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone
u est associé un prototype pu (un objet dans le même espace que les données initiales; par
exemple, un vecteur numérique).
La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance
d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux.
La grille possède également une fonction de voisinage ht
(d(u, u )) telle que ht
: R+ → R+,
ht
(0) = 1 et limx→+∞ ht
(x) = 0.
L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra
étendue aux voisins)
E =
U
i=1
U
j=1
ht
(d(i, j))
x∈Γj
x − pi
2
,
où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU.
6 / 21
Introduction Principe
Notations
La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone
u est associé un prototype pu (un objet dans le même espace que les données initiales; par
exemple, un vecteur numérique).
La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance
d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux.
La grille possède également une fonction de voisinage ht
(d(u, u )) telle que ht
: R+ → R+,
ht
(0) = 1 et limx→+∞ ht
(x) = 0.
L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra
étendue aux voisins)
E =
U
i=1
U
j=1
ht
(d(i, j))
x∈Γj
x − pi
2
,
où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU.
6 / 21
Introduction Principe
SOM - Comment ça marche?
Avant
7 / 21
Introduction Principe
SOM - Comment ça marche?
Avant
Après
7 / 21
Introduction Principe
SOM - l’algorithme de base
Données: x1, . . . , xn ∈ Rd
1: Initialisation: tirage aléatoire de p0
1
,...,p0
U
dans Rd
2: for t = 1 → T do
3: Choisir de manière aléatoire i ∈ {1, . . . , n}
4: Affectation
ft
(xi) ← arg min
u=1,...,U
xi − pt−1
u Rd
5: for all u = 1 → U do Mise à jour des prototypes
6: pt
u ← pt−1
u + µt ht
(d(ft
(xi), u)) xi − pt−1
u
7: end for
8: end for
où ht
décroit la taille du voisinage en fonction de t et µt est généralement égal à 1/t.
8 / 21
Implémentation Description
Version actuelle
Description
Version ONLINE 0.3 :
orientation objet de type “S3”
17 fonctions pour l’utilisateur
3 documentations utilisateur “user-friendly” avec des exemples sur des jeux de données réels
Implémentation complète du cas numérique, on-line avec fonctionnalités graphiques,
super-classification et critères de qualité
Implémentation complète du cas korresp, on-line pour traiter les tables de contingence
Le package est actuellement disponible sur
http://tuxette.nathalievilla.org/?p=1099&lang=en
9 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
4 variables numériques : Sepal.Length, Sepal.Width, Petal.Length et Petal.Width
Commande :
iris.som <- trainSOM(x.data=iris[,1:4], nb.save=10)
10 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
Hitmap :
plot(iris.som, what="obs", type="hitmap")
11 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
Niveau de valeur des prototypes pour une variable donnée :
plot(iris.som, what="prototypes", type="3d", variable="Sepal.Width", main="Sepal
Width")
12 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
Répartition des observations sur la carte :
plot(iris.som, what="obs", type="names", print.title=TRUE)
13 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
Graphiques circulaires sur la variable espèce :
plot(iris.som, what="add", type="pie", variable=iris$Species)
14 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
Distances entre les prototypes :
plot(iris.som, what="prototypes", type="smooth.dist")
15 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
sc <- superClass(my.som, k=3)
plot(sc)
16 / 21
Implémentation Données vectorielles
Données vectorielles
Exemple : données iris
plot(sc, type="hitmap", plot.legend=TRUE)
17 / 21
Implémentation Tableaux de contingence
Tableaux de contingence
Algorithme Korresp
Données initiales : tableau de contingence T ∈ Npxq
Données transformées : Tcorr
∈ R(p+q)x(q+p)
à chaque profil-ligne r(i) est associé le profil-colonne le plus probable sachant i : c(j(i)), 1 ≤ i ≤ p;
à chaque profil-colonne c(j) est associé le profil-ligne le plus probable sachant j : r(i(j)), 1 ≤ j ≤ q
L’algorithme SOM de base est appliqué aux données Tcorr
avec quelques changements,
[Cottrell et al., 1999] :
la distance de χ2
au lieu de la distance euclidienne
l’observation courante est tirée alternativement parmi les profils-ligne ou les profils-colonne
l’unité gagnante est calculée uniquement sur les q premières ou les p dernières composantes
18 / 21
Implémentation Tableaux de contingence
Tableaux de contingence
Exemple : présidentielles 2002
presi02 <- trainSOM(presidentielles2002, type="korresp", scaling="chi2")
Répartition sur la carte :
plot(presi02, what="obs", type="names")
19 / 21
Conclusion et perspectives
Conclusion et perspectives
Implémentation actuelle :
Données numériques
Tableaux de contingence
À venir :
Données décrites par une matrice de dissimilarités
Données décrites par des multi-noyaux (apprentissage adaptatif des poids)
20 / 21
Conclusion et perspectives
Conclusion et perspectives
Implémentation actuelle :
Données numériques
Tableaux de contingence
À venir :
Données décrites par une matrice de dissimilarités
Données décrites par des multi-noyaux (apprentissage adaptatif des poids)
20 / 21
Conclusion et perspectives
Merci de votre attention
21 / 21
Conclusion et perspectives
References
Cottrell, M., Gaubert, P., Letremy, P., Rousset, P., and de Paris I: Panthéon-Sorbonne. Maison des sciences économiques, U. (1999).
Analyzing and Representing Multidimensional Quantitative and Qualitative Data: Demographic Study of the Rhone Valley. The Domestic Consumption of the
Canadian Families.
Cahiers de la MSE. Universite de Paris I.
Cottrell, M., Olteanu, M., Rossi, F., Rynkiewicz, J., and Villa-Vialaneix, N. (2012).
Neural networks for complex data.
Künstliche Intelligenz, 26(2):1–8.
Kohohen, T. and Somervuo, P. (1998).
Self-organizing maps of symbol strings.
Neurocomputing, 21:19–30.
Kohonen, T. (2001).
Self-Organizing Maps, 3rd Edition, volume 30.
Springer, Berlin, Heidelberg, New York.
Olteanu, M. and Villa-Vialaneix, N. (2013).
Online dissimilarity som.
Submitted for publication.
21 / 21

Más contenido relacionado

La actualidad más candente

La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmiqueHajer Trabelsi
 
Convex Multi-Task Feature Learning
Convex Multi-Task Feature LearningConvex Multi-Task Feature Learning
Convex Multi-Task Feature LearningSakher BELOUADAH
 
Chap9 : Systèmes non linéaires
Chap9 : Systèmes non linéairesChap9 : Systèmes non linéaires
Chap9 : Systèmes non linéairesMohammed TAMALI
 
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...tuxette
 
Quelques avancées dans le débruitage d'images par patch
Quelques avancées dans le débruitage d'images par patch Quelques avancées dans le débruitage d'images par patch
Quelques avancées dans le débruitage d'images par patch I MT
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
CHAPITRE VIII : Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII :  Systèmes linéaires Modélisation & SimulationCHAPITRE VIII :  Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII : Systèmes linéaires Modélisation & SimulationMohammed TAMALI
 
Cnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrigeCnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrigeOtman Aberkane
 
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Julien Bect
 
LA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérés
LA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérésLA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérés
LA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérésAnas EL MALEKI
 
Diagramme de VORONOÏ et Triangulation Delaunay
Diagramme de VORONOÏ et Triangulation Delaunay  Diagramme de VORONOÏ et Triangulation Delaunay
Diagramme de VORONOÏ et Triangulation Delaunay Ahmed EL ATARI
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéSana Aroussi
 
Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM)
Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM) Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM)
Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM) tuxette
 

La actualidad más candente (20)

La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
 
Convex Multi-Task Feature Learning
Convex Multi-Task Feature LearningConvex Multi-Task Feature Learning
Convex Multi-Task Feature Learning
 
Formation traitement d_images
Formation traitement d_imagesFormation traitement d_images
Formation traitement d_images
 
Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
Chap9 : Systèmes non linéaires
Chap9 : Systèmes non linéairesChap9 : Systèmes non linéaires
Chap9 : Systèmes non linéaires
 
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
 
Quelques avancées dans le débruitage d'images par patch
Quelques avancées dans le débruitage d'images par patch Quelques avancées dans le débruitage d'images par patch
Quelques avancées dans le débruitage d'images par patch
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
CHAPITRE VIII : Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII :  Systèmes linéaires Modélisation & SimulationCHAPITRE VIII :  Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII : Systèmes linéaires Modélisation & Simulation
 
Cnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrigeCnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrige
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 
09 mouvement-2
09 mouvement-209 mouvement-2
09 mouvement-2
 
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...Modèles numériques coûteux : de la quantification des incertitudes la planifi...
Modèles numériques coûteux : de la quantification des incertitudes la planifi...
 
LA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérés
LA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérésLA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérés
LA TESSELATION DE VORONOÏ : Diagramme de Voronoï à germes pondérés
 
Diagramme de VORONOÏ et Triangulation Delaunay
Diagramme de VORONOÏ et Triangulation Delaunay  Diagramme de VORONOÏ et Triangulation Delaunay
Diagramme de VORONOÏ et Triangulation Delaunay
 
Chapitre ii complexité et optimalité
Chapitre ii complexité et optimalitéChapitre ii complexité et optimalité
Chapitre ii complexité et optimalité
 
Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM)
Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM) Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM)
Analyse de données fonctionnelles par Machines à Vecteurs de Support (SVM)
 

Similar a Presentation of SOMbrero

Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes PrincipalesJaouad Dabounou
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'information1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'informationAbdou Obado
 
Ponts castillo1 statistique
Ponts castillo1 statistiquePonts castillo1 statistique
Ponts castillo1 statistiqueAli BEN MANSOUR
 
cours-5.1.pdf
cours-5.1.pdfcours-5.1.pdf
cours-5.1.pdfGonnaBe1
 
Analyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcAnalyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcRémi Bachelet
 
SIG ET ANALYSE SPATIALE, SESSION 1
SIG ET ANALYSE SPATIALE, SESSION 1SIG ET ANALYSE SPATIALE, SESSION 1
SIG ET ANALYSE SPATIALE, SESSION 1YOUSSOUPHA MBODJI
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Hitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithmHitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithmVictor Bontemps
 
Fouille de données pour de grands graphes. Recherche de communautés et organi...
Fouille de données pour de grands graphes. Recherche de communautés et organi...Fouille de données pour de grands graphes. Recherche de communautés et organi...
Fouille de données pour de grands graphes. Recherche de communautés et organi...tuxette
 
Cours rep etat
Cours rep etatCours rep etat
Cours rep etatLin Pepin
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0guest8b8369
 
Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes PrincipalesJaouad Dabounou
 

Similar a Presentation of SOMbrero (20)

Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'information1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'information
 
Ponts castillo1 statistique
Ponts castillo1 statistiquePonts castillo1 statistique
Ponts castillo1 statistique
 
cours-5.1.pdf
cours-5.1.pdfcours-5.1.pdf
cours-5.1.pdf
 
Analyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcAnalyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afc
 
SIG ET ANALYSE SPATIALE, SESSION 1
SIG ET ANALYSE SPATIALE, SESSION 1SIG ET ANALYSE SPATIALE, SESSION 1
SIG ET ANALYSE SPATIALE, SESSION 1
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Quad-expo-stats
Quad-expo-statsQuad-expo-stats
Quad-expo-stats
 
Cari2020 dembele
Cari2020 dembeleCari2020 dembele
Cari2020 dembele
 
Hitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithmHitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithm
 
Fouille de données pour de grands graphes. Recherche de communautés et organi...
Fouille de données pour de grands graphes. Recherche de communautés et organi...Fouille de données pour de grands graphes. Recherche de communautés et organi...
Fouille de données pour de grands graphes. Recherche de communautés et organi...
 
TV_Soutenance_2012
TV_Soutenance_2012TV_Soutenance_2012
TV_Soutenance_2012
 
Présentation pfe
Présentation pfePrésentation pfe
Présentation pfe
 
Actuariat et Données
Actuariat et DonnéesActuariat et Données
Actuariat et Données
 
Cours rep etat
Cours rep etatCours rep etat
Cours rep etat
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Analyse en Composantes Principales
Analyse en Composantes PrincipalesAnalyse en Composantes Principales
Analyse en Composantes Principales
 

Más de tuxette

Racines en haut et feuilles en bas : les arbres en maths
Racines en haut et feuilles en bas : les arbres en mathsRacines en haut et feuilles en bas : les arbres en maths
Racines en haut et feuilles en bas : les arbres en mathstuxette
 
Méthodes à noyaux pour l’intégration de données hétérogènes
Méthodes à noyaux pour l’intégration de données hétérogènesMéthodes à noyaux pour l’intégration de données hétérogènes
Méthodes à noyaux pour l’intégration de données hétérogènestuxette
 
Méthodologies d'intégration de données omiques
Méthodologies d'intégration de données omiquesMéthodologies d'intégration de données omiques
Méthodologies d'intégration de données omiquestuxette
 
Projets autour de l'Hi-C
Projets autour de l'Hi-CProjets autour de l'Hi-C
Projets autour de l'Hi-Ctuxette
 
Can deep learning learn chromatin structure from sequence?
Can deep learning learn chromatin structure from sequence?Can deep learning learn chromatin structure from sequence?
Can deep learning learn chromatin structure from sequence?tuxette
 
Multi-omics data integration methods: kernel and other machine learning appro...
Multi-omics data integration methods: kernel and other machine learning appro...Multi-omics data integration methods: kernel and other machine learning appro...
Multi-omics data integration methods: kernel and other machine learning appro...tuxette
 
ASTERICS : une application pour intégrer des données omiques
ASTERICS : une application pour intégrer des données omiquesASTERICS : une application pour intégrer des données omiques
ASTERICS : une application pour intégrer des données omiquestuxette
 
Autour des projets Idefics et MetaboWean
Autour des projets Idefics et MetaboWeanAutour des projets Idefics et MetaboWean
Autour des projets Idefics et MetaboWeantuxette
 
Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...
Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...
Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...tuxette
 
Apprentissage pour la biologie moléculaire et l’analyse de données omiques
Apprentissage pour la biologie moléculaire et l’analyse de données omiquesApprentissage pour la biologie moléculaire et l’analyse de données omiques
Apprentissage pour la biologie moléculaire et l’analyse de données omiquestuxette
 
Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...
Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...
Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...tuxette
 
Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...
Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...
Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...tuxette
 
Journal club: Validation of cluster analysis results on validation data
Journal club: Validation of cluster analysis results on validation dataJournal club: Validation of cluster analysis results on validation data
Journal club: Validation of cluster analysis results on validation datatuxette
 
Overfitting or overparametrization?
Overfitting or overparametrization?Overfitting or overparametrization?
Overfitting or overparametrization?tuxette
 
Selective inference and single-cell differential analysis
Selective inference and single-cell differential analysisSelective inference and single-cell differential analysis
Selective inference and single-cell differential analysistuxette
 
SOMbrero : un package R pour les cartes auto-organisatrices
SOMbrero : un package R pour les cartes auto-organisatricesSOMbrero : un package R pour les cartes auto-organisatrices
SOMbrero : un package R pour les cartes auto-organisatricestuxette
 
Graph Neural Network for Phenotype Prediction
Graph Neural Network for Phenotype PredictionGraph Neural Network for Phenotype Prediction
Graph Neural Network for Phenotype Predictiontuxette
 
A short and naive introduction to using network in prediction models
A short and naive introduction to using network in prediction modelsA short and naive introduction to using network in prediction models
A short and naive introduction to using network in prediction modelstuxette
 
Explanable models for time series with random forest
Explanable models for time series with random forestExplanable models for time series with random forest
Explanable models for time series with random foresttuxette
 
Présentation du projet ASTERICS
Présentation du projet ASTERICSPrésentation du projet ASTERICS
Présentation du projet ASTERICStuxette
 

Más de tuxette (20)

Racines en haut et feuilles en bas : les arbres en maths
Racines en haut et feuilles en bas : les arbres en mathsRacines en haut et feuilles en bas : les arbres en maths
Racines en haut et feuilles en bas : les arbres en maths
 
Méthodes à noyaux pour l’intégration de données hétérogènes
Méthodes à noyaux pour l’intégration de données hétérogènesMéthodes à noyaux pour l’intégration de données hétérogènes
Méthodes à noyaux pour l’intégration de données hétérogènes
 
Méthodologies d'intégration de données omiques
Méthodologies d'intégration de données omiquesMéthodologies d'intégration de données omiques
Méthodologies d'intégration de données omiques
 
Projets autour de l'Hi-C
Projets autour de l'Hi-CProjets autour de l'Hi-C
Projets autour de l'Hi-C
 
Can deep learning learn chromatin structure from sequence?
Can deep learning learn chromatin structure from sequence?Can deep learning learn chromatin structure from sequence?
Can deep learning learn chromatin structure from sequence?
 
Multi-omics data integration methods: kernel and other machine learning appro...
Multi-omics data integration methods: kernel and other machine learning appro...Multi-omics data integration methods: kernel and other machine learning appro...
Multi-omics data integration methods: kernel and other machine learning appro...
 
ASTERICS : une application pour intégrer des données omiques
ASTERICS : une application pour intégrer des données omiquesASTERICS : une application pour intégrer des données omiques
ASTERICS : une application pour intégrer des données omiques
 
Autour des projets Idefics et MetaboWean
Autour des projets Idefics et MetaboWeanAutour des projets Idefics et MetaboWean
Autour des projets Idefics et MetaboWean
 
Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...
Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...
Rserve, renv, flask, Vue.js dans un docker pour intégrer des données omiques ...
 
Apprentissage pour la biologie moléculaire et l’analyse de données omiques
Apprentissage pour la biologie moléculaire et l’analyse de données omiquesApprentissage pour la biologie moléculaire et l’analyse de données omiques
Apprentissage pour la biologie moléculaire et l’analyse de données omiques
 
Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...
Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...
Quelques résultats préliminaires de l'évaluation de méthodes d'inférence de r...
 
Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...
Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...
Intégration de données omiques multi-échelles : méthodes à noyau et autres ap...
 
Journal club: Validation of cluster analysis results on validation data
Journal club: Validation of cluster analysis results on validation dataJournal club: Validation of cluster analysis results on validation data
Journal club: Validation of cluster analysis results on validation data
 
Overfitting or overparametrization?
Overfitting or overparametrization?Overfitting or overparametrization?
Overfitting or overparametrization?
 
Selective inference and single-cell differential analysis
Selective inference and single-cell differential analysisSelective inference and single-cell differential analysis
Selective inference and single-cell differential analysis
 
SOMbrero : un package R pour les cartes auto-organisatrices
SOMbrero : un package R pour les cartes auto-organisatricesSOMbrero : un package R pour les cartes auto-organisatrices
SOMbrero : un package R pour les cartes auto-organisatrices
 
Graph Neural Network for Phenotype Prediction
Graph Neural Network for Phenotype PredictionGraph Neural Network for Phenotype Prediction
Graph Neural Network for Phenotype Prediction
 
A short and naive introduction to using network in prediction models
A short and naive introduction to using network in prediction modelsA short and naive introduction to using network in prediction models
A short and naive introduction to using network in prediction models
 
Explanable models for time series with random forest
Explanable models for time series with random forestExplanable models for time series with random forest
Explanable models for time series with random forest
 
Présentation du projet ASTERICS
Présentation du projet ASTERICSPrésentation du projet ASTERICS
Présentation du projet ASTERICS
 

Presentation of SOMbrero

  • 1. SOMbrero : Cartes auto-organisatrices stochastiques pour l’intégration de données numériques et non numériques Laura Bendhaïba1 , Madalina Olteanu1 & Nathalie Villa-Vialaneix1,2 1 2 Rencontres R, 28 juin 2013 1 / 21
  • 2. Plan 1 Introduction Définition Principe 2 Implémentation Description Données vectorielles Tableaux de contingence 3 Conclusion et perspectives 2 / 21
  • 3. Introduction Introduction Cartes auto-organisatrices (aussi appelées “cartes de Kohonen”ou SOM) Pour données vectorielles, [Kohonen, 2001] Pour données qualitatives, séries temporelles et, de manière plus générale, données non euclidiennes décrites par des tableaux de dissimilarités, [Kohohen and Somervuo, 1998], [Cottrell et al., 2012], [Olteanu and Villa-Vialaneix, 2013] Une version SAS existe déjà pour données vectorielles et données qualitatives, mais n’est plus maintenue depuis deux ans : http://samos.univ-paris1.fr/Programmes-bases-sur-l-algorithme 3 / 21
  • 4. Introduction Définition Contexte Cartes auto-organisatrices : définition Apprentissage > Méthodes neuronales > Cartes auto-organisatrices Algorithme différent des méthodes de classification ordinaires : respect de la topologie des données d’origine Projection nonlinéaire et clustering (réduction de dimension) Généralisation des centres mobiles (version stochastique) Vocabulaire : Neurones Prototypes (vecteurs-code) 4 / 21
  • 7. Introduction Principe Notations La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone u est associé un prototype pu (un objet dans le même espace que les données initiales; par exemple, un vecteur numérique). La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux. La grille possède également une fonction de voisinage ht (d(u, u )) telle que ht : R+ → R+, ht (0) = 1 et limx→+∞ ht (x) = 0. L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra étendue aux voisins) E = U i=1 U j=1 ht (d(i, j)) x∈Γj x − pi 2 , où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU. 6 / 21
  • 8. Introduction Principe Notations La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone u est associé un prototype pu (un objet dans le même espace que les données initiales; par exemple, un vecteur numérique). La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux. La grille possède également une fonction de voisinage ht (d(u, u )) telle que ht : R+ → R+, ht (0) = 1 et limx→+∞ ht (x) = 0. L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra étendue aux voisins) E = U i=1 U j=1 ht (d(i, j)) x∈Γj x − pi 2 , où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU. 6 / 21
  • 9. Introduction Principe Notations La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone u est associé un prototype pu (un objet dans le même espace que les données initiales; par exemple, un vecteur numérique). La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux. La grille possède également une fonction de voisinage ht (d(u, u )) telle que ht : R+ → R+, ht (0) = 1 et limx→+∞ ht (x) = 0. L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra étendue aux voisins) E = U i=1 U j=1 ht (d(i, j)) x∈Γj x − pi 2 , où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU. 6 / 21
  • 10. Introduction Principe Notations La carte est constituée de U neurones (symbolisés par les nœuds de la grille). A chaque neurone u est associé un prototype pu (un objet dans le même espace que les données initiales; par exemple, un vecteur numérique). La structure de la carte induit une distance naturelle entre les neurones sur la grille : la distance d(u, u ) entre les neurones u et u est définie comme la longueur du plus court chemin entre eux. La grille possède également une fonction de voisinage ht (d(u, u )) telle que ht : R+ → R+, ht (0) = 1 et limx→+∞ ht (x) = 0. L’algorithme cherche à partitionner les données de manière à minimiser l’énergie (variance intra étendue aux voisins) E = U i=1 U j=1 ht (d(i, j)) x∈Γj x − pi 2 , où Γ1, ..., ΓU est la partition de Voronoï associée aux prototypes p1, ..., pU. 6 / 21
  • 11. Introduction Principe SOM - Comment ça marche? Avant 7 / 21
  • 12. Introduction Principe SOM - Comment ça marche? Avant Après 7 / 21
  • 13. Introduction Principe SOM - l’algorithme de base Données: x1, . . . , xn ∈ Rd 1: Initialisation: tirage aléatoire de p0 1 ,...,p0 U dans Rd 2: for t = 1 → T do 3: Choisir de manière aléatoire i ∈ {1, . . . , n} 4: Affectation ft (xi) ← arg min u=1,...,U xi − pt−1 u Rd 5: for all u = 1 → U do Mise à jour des prototypes 6: pt u ← pt−1 u + µt ht (d(ft (xi), u)) xi − pt−1 u 7: end for 8: end for où ht décroit la taille du voisinage en fonction de t et µt est généralement égal à 1/t. 8 / 21
  • 14. Implémentation Description Version actuelle Description Version ONLINE 0.3 : orientation objet de type “S3” 17 fonctions pour l’utilisateur 3 documentations utilisateur “user-friendly” avec des exemples sur des jeux de données réels Implémentation complète du cas numérique, on-line avec fonctionnalités graphiques, super-classification et critères de qualité Implémentation complète du cas korresp, on-line pour traiter les tables de contingence Le package est actuellement disponible sur http://tuxette.nathalievilla.org/?p=1099&lang=en 9 / 21
  • 15. Implémentation Données vectorielles Données vectorielles Exemple : données iris 4 variables numériques : Sepal.Length, Sepal.Width, Petal.Length et Petal.Width Commande : iris.som <- trainSOM(x.data=iris[,1:4], nb.save=10) 10 / 21
  • 16. Implémentation Données vectorielles Données vectorielles Exemple : données iris Hitmap : plot(iris.som, what="obs", type="hitmap") 11 / 21
  • 17. Implémentation Données vectorielles Données vectorielles Exemple : données iris Niveau de valeur des prototypes pour une variable donnée : plot(iris.som, what="prototypes", type="3d", variable="Sepal.Width", main="Sepal Width") 12 / 21
  • 18. Implémentation Données vectorielles Données vectorielles Exemple : données iris Répartition des observations sur la carte : plot(iris.som, what="obs", type="names", print.title=TRUE) 13 / 21
  • 19. Implémentation Données vectorielles Données vectorielles Exemple : données iris Graphiques circulaires sur la variable espèce : plot(iris.som, what="add", type="pie", variable=iris$Species) 14 / 21
  • 20. Implémentation Données vectorielles Données vectorielles Exemple : données iris Distances entre les prototypes : plot(iris.som, what="prototypes", type="smooth.dist") 15 / 21
  • 21. Implémentation Données vectorielles Données vectorielles Exemple : données iris sc <- superClass(my.som, k=3) plot(sc) 16 / 21
  • 22. Implémentation Données vectorielles Données vectorielles Exemple : données iris plot(sc, type="hitmap", plot.legend=TRUE) 17 / 21
  • 23. Implémentation Tableaux de contingence Tableaux de contingence Algorithme Korresp Données initiales : tableau de contingence T ∈ Npxq Données transformées : Tcorr ∈ R(p+q)x(q+p) à chaque profil-ligne r(i) est associé le profil-colonne le plus probable sachant i : c(j(i)), 1 ≤ i ≤ p; à chaque profil-colonne c(j) est associé le profil-ligne le plus probable sachant j : r(i(j)), 1 ≤ j ≤ q L’algorithme SOM de base est appliqué aux données Tcorr avec quelques changements, [Cottrell et al., 1999] : la distance de χ2 au lieu de la distance euclidienne l’observation courante est tirée alternativement parmi les profils-ligne ou les profils-colonne l’unité gagnante est calculée uniquement sur les q premières ou les p dernières composantes 18 / 21
  • 24. Implémentation Tableaux de contingence Tableaux de contingence Exemple : présidentielles 2002 presi02 <- trainSOM(presidentielles2002, type="korresp", scaling="chi2") Répartition sur la carte : plot(presi02, what="obs", type="names") 19 / 21
  • 25.
  • 26. Conclusion et perspectives Conclusion et perspectives Implémentation actuelle : Données numériques Tableaux de contingence À venir : Données décrites par une matrice de dissimilarités Données décrites par des multi-noyaux (apprentissage adaptatif des poids) 20 / 21
  • 27. Conclusion et perspectives Conclusion et perspectives Implémentation actuelle : Données numériques Tableaux de contingence À venir : Données décrites par une matrice de dissimilarités Données décrites par des multi-noyaux (apprentissage adaptatif des poids) 20 / 21
  • 28. Conclusion et perspectives Merci de votre attention 21 / 21
  • 29. Conclusion et perspectives References Cottrell, M., Gaubert, P., Letremy, P., Rousset, P., and de Paris I: Panthéon-Sorbonne. Maison des sciences économiques, U. (1999). Analyzing and Representing Multidimensional Quantitative and Qualitative Data: Demographic Study of the Rhone Valley. The Domestic Consumption of the Canadian Families. Cahiers de la MSE. Universite de Paris I. Cottrell, M., Olteanu, M., Rossi, F., Rynkiewicz, J., and Villa-Vialaneix, N. (2012). Neural networks for complex data. Künstliche Intelligenz, 26(2):1–8. Kohohen, T. and Somervuo, P. (1998). Self-organizing maps of symbol strings. Neurocomputing, 21:19–30. Kohonen, T. (2001). Self-Organizing Maps, 3rd Edition, volume 30. Springer, Berlin, Heidelberg, New York. Olteanu, M. and Villa-Vialaneix, N. (2013). Online dissimilarity som. Submitted for publication. 21 / 21