Dans le précédent article, nous avons exploré les meetups rennais en utilisant les outils classiques de visualisation de données (nuages de points, diagrammes en barres, cartographie).
L’organisation des données collectées, constituant une structure en réseau (des membres de groupes qualifiés par des thèmes), nous permet d’utiliser des outils d’analyse plus avancés que sont les bases de données orientées graphes.
Dans cet article, nous allons découvrir comment les graphes et les visualisations associées permettent d’appréhender les données d’une façon différente.
Données
Les données ont été collectées via l’interface de programmation (ou API) mise à disposition par Meetup, et portent sur les groupes situés à Rennes, dans la limite d’un périmètre de 11 km, à la date du 24/09/2017.
Quelques notions de Graphes
Les données d’une base de données orientée graphes sont stockées selon le principe de la théorie des graphes.
Les entités, représentées par des noeuds (nodes, vertices), sont reliées par des arcs (edges, links). Ceci permet une représentation de l’information moins technique, plus concrète.
La visualisation suivante est un exemple de la représentation en graphe :
Les noeuds (en rouge et vert pour les personnes) représentent des sujets, les arcs expriment un fait sous la forme d’un verbe. La taille des noeuds est proportionnelle au nombre d’arcs qu’ils ont.
Analyse exploratoire
Groupes et membres
Commençons par l’exploration des groupes et de leurs membres.
Les groupes sont en rouge, le membres sont en vert, la taille des groupes est proportionnelle au nombre de membres qu’ils ont (on parle de degré).
Plus les membres sont positionnés au centre, plus ils sont inscrits à un grand nombre de groupes. A contrario, les membres positionnés vers l’extérieur sont inscrits dans peu de groupes (un seul s’ils se trouvent en périphérie).
Si l’on peut éventuellement apprécier le caractère artistique d’une telle visualisation, l’information qu’elle apporte reste difficilement exploitable, du fait du grand nombre de noeuds (membres et groupes = 6 714) et de liens (23 138) à faire figurer dans l’espace limité de cet article (notre charte graphique imposant une taille d’image de 1200 * 600 pixels).
Il est plus approprié dans ce cas de faire appel à une visualisation dynamique, permettant de naviguer dans le graphe au gré de ses investigations. Un exemple (réalisé à partir de nos données avec l’outil Gephi et l’extension SigmaExporter) est consultable en suivant ce lien.
Le graphe précédent contenait 2 types de noeuds : les groupes et les membres. On parle dans ce cas de graphe biparti. Il est possible à partir de ce graphe de déduire 2 graphes monopartis (on parle de projection) :
- 1 graphe dont les noeuds représentent les groupes, et les liens le nombre de membres en commun entre chaque groupe.
- 1 graphe dont les noeuds représentent les membres, et les liens le nombre de groupes en commun entre chaque membre.
Etudions la projection des groupes liés par rapport aux membres qu’ils ont en commun (pour des raisons de performance, la projection des membres ne sera pas évoquée dans cet article).
Les groupes sont en rouge, la taille des groupes est proportionnelle au nombre de groupes auxquels ils sont connectés.
La densité de ce graphe illustre les nombreuses connexions entre les groupes. Une personne est effet généralement membre de plusieurs groupes.
C’est entre le groupe Le Shift et La Cordée Rennes – partage, événements et bonne humeur que l’on observe le lien le plus fort, avec 461 membres en commun.
Le tableau suivant énumère les 10 couples de groupes avec le plus fort lien :
Groupe 1 | Groupe 2 | Membres en commun |
---|---|---|
Le Shift | La Cordée Rennes – partage, événements et bonne humeur | 461 |
Le Shift | Meetup La French Tech Rennes St Malo | 456 |
La Cordée Rennes – partage, événements et bonne humeur | Meetup La French Tech Rennes St Malo | 447 |
UX Rennes | Meetup La French Tech Rennes St Malo | 404 |
UX Rennes | Le Shift | 390 |
Agile Rennes | UX Rennes | 361 |
DevCamp Rennes | RennesJS | 352 |
UX Rennes | La Cordée Rennes – partage, événements et bonne humeur | 352 |
Docker Rennes | Rennes devops | 350 |
Agile Rennes | Osons le Leadership Rennes | 346 |
La même information peut bien entendu être restituée sous la forme d’un graphe :
Les groupes sont en rouge, les nombres sur les liens indiquent le nombre de membres en commun.
On observe qu’il existe une interaction parfois importante entre les membres des groupes. A l’extrême, on aura une situation où les mêmes personnes seront inscrites aux mêmes groupes, créant ainsi un entre-soi.
Quelle est l’importance de ce phénomène pour les groupes de notre jeu de données ?
Les groupes sont colorés en fonction de leur appartenance à une même communauté, la taille des groupes est proportionnelle au nombre de groupes auxquels ils sont connectés.
Les communautés, au nombre de 4, ont été détectées selon la méthode du walktrap.
La méthode du walktrap consiste à identifier des sous-graphes fortement connectés en navigant aléatoirement de noeuds en noeuds, en partant du principe que le déplacement aléatoire aura tendance à rester à l’intérieur de la communauté plutôt que de la quitter.
Notre attention est attirée par un groupe isolé dans sa propre communauté (de couleur jaune). Il s’agit du Meetup Communauté vidéo iPhone Bretagne. Cette mise à l’écart s’explique par le fait que ce groupe n’est composé que de 1 membre (à l’évidence son créateur).
Groupes et thèmes
Passons à l’exploration des groupes et de leurs thèmes.
Le graphique ci-dessous permet de visualiser le réseau constitué par les groupes et leurs thématiques (un même thème pouvant être partagé avec plusieurs groupes).
Les groupes sont en rouge, les thèmes sont en vert, la taille des groupes est proportionnelle au nombre de thèmes auxquels ils sont connectés.
Il y a 106 groupes pour 560 thèmes.
Le groupe avec le plus grand nombre de thèmes est Docker Rennes, avec les thèmes Linux, Cloud Computing, Open Source, Big Data, Configuration Management, Operations and Data Center Management, Data Center and Operations Automation, DevOps, IaaS (Infrastructure as a Service), PaaS (Platform as a Service), Cloud Security, Virtualization, Infrastructure as Code, OpenStack, Continuous Delivery, Docker.
On observe que certains groupes sont isolés, c’est à dire qu’ils ne sont reliés à aucun autres groupes par l’intermédiaire de leurs thèmes (les thèmes étant de fait eux aussi isolés). Ces groupes sont WineRennes – Passion du vin, Neurofeedback Rennes, Meetup Photographie Pro (Rennes), Convention et séminaire chrétien.
Les groupes sont en rouge, les thèmes sont en vert.
Comme nous l’avons précédemment fait pour les groupes et leurs membres, étudions la projection des groupes liés par rapport aux thèmes qu’ils ont en commun.
Les groupes sont en rouge, la taille des groupes est proportionnelle au nombre de groupes auxquels ils sont connectés.
On retrouve sur cette visualisation les groupes isolés par leurs thèmes précédemment évoqués.
Poursuivons avec la projection des thèmes liés par rapport aux groupes qu’ils ont en commun.
Les thèmes sont en rouge, la taille des thèmes est proportionnelle au nombre de thèmes auxquels ils sont connectés.
Les ensembles isolés matérialisent les thèmes des groupes isolés.
Zoom sur les groupes Data
Notre étude a jusqu’à présent porté sur l’ensemble de la communauté Meetup rennaise.
Terminons avec un sous-ensemble de notre communauté, dédié aux Meetups traitant de la données que sont Rennes Data Club, Machine Learning Rennes et Data2Breakfast.
Les groupes sont en rouge, les membres sont en vert, la taille des groupes est proportionnelle au nombre de membres auxquels ils sont connectés.
On visualise clairement les membres communs à 2, voire 3 groupes.
Les plus attentifs auront remarqué un cercle jaune noyé au milieu du graphe, représentant un membre dont ils n’auront aucun mal à deviner l’identité. 😉
Si l’on applique une segmentation (toujours selon la méthode du walktrap), on constate que le groupe Meetup Machine Learning Rennes se démarque des autres groupes, du moins du point de vue des connexions de ses membres avec les autres groupes…
Les groupes et membres sont colorés en fonction de leur appartenance à une même communauté, la taille des groupes est proportionnelle au nombre de membres auxquels ils sont connectés.
Conclusion
Les possibilités offertes par les visualisations en graphes n’ont de limite que notre imagination. Nous nous arrêterons à ce stade en ce qui concerne cet article.
Dans un prochain article, nous nous intéresserons aux moyens d’interroger les données sous forme de graphes.
Rédigé par: Michel Caradec
Rédacteur pour Data Bzh
Vous devez être connecté pour poster un commentaire.