Partir à la découverte de ses réseaux —Configuration

Partie 2 —Mettre les mains dans le cambouis

Dernièrement, je me suis essayé à l’explication des bases de la théorie des graphes (partie 1). J’ai également tenté de vulgariser les différentes approches académiques de la bulle.

Comme précisé dans cet article sur la théorie des graphes, l’objectif est de visualiser les réseaux de followees Twitter des candidats à l’élection présidentielle (les scripts tournent à plein régime !)

Note : je n’ai pas d’ambitions analytiques ! Je ferai mon possible pour vulgariser des concepts scientifiques appliqués à ces réseaux précis, mais je ne garantis rien. Toutefois, n’hésitez pas à me contacter si vous êtes partant pour vous lancer dans une analyse précise.

Avant de commencer

Dans le cas de Twitter et Facebook, les réseaux observés ici, les données récoltées sont mes ami.e.s et les liens entre elleux. Sur Twitter, ce sera le réseau des personnes que je suis (followees) et leur liens avec les autres personnes. Sur Facebook, on obtient le réseau de mes ami.e.s et les liens d’amitié entre elleux.

Pourquoi mes réseaux ?

Tout simplement car je connais les personnes et peut vous décrire au minimum les communautés.

Mon réseau Twitter

Allons faire un tour sur mon profil Twitter et observons les données à disposition.

Capture d’écran du 8 avril

Pour celleux qui ne sont pas trop à l’aise avec ce réseau social, 395 correspond au nombre de personnes que je suis (followees) et 1 023 au nombre de personnes qui me suivent (followers).

Pour comprendre le script qui génère la visualisation, allons maintenant voir la liste de mes followees et prenons comme exemples trois cas possibles :

Je suis Qobuz et Pierre Cut. Pierre Cut me suit ainsi que Qobuz. Qobuz ne nous suit pas.
Je suis Olivier Ertzscheid (affordanceinfo) qui suit Dominique Cardon. Je suis aussi Dominique Cardon. Dominique Cardon suit Olivier Ertzscheid. Dominique Cardon et Olivier Ertzscheid ne me suivent pas.
Je suis La Mère Zaclys et réciproquement. La Mère Zaclys suit David Dufresne et réciproquement. David Dufresne me suit, et réciproquement.

Récupération des données

L’objectif ici est de se retrouver avec un fichier à importer dans Gephi. Après une balade sur les Internets, je suis tombé sur cet excellent tutoriel de Luca Hammer qui explique pas-à-pas l’utilisation du script Python Twecoll. Le repo Github fournit également toutes les infos.

Je ne vais pas traduire l’article, mais pour vous faire une idée générale je vous explique tout de même la marche à suivre. On commence par créer une app Twitter. On télécharge ensuite le script twecoll qu’on met dans un nouveau dossier.

Première étape
Avec le Terminal, on se place dans ce dossier et on lance twecoll avec Python2.7. 
Le script demande les clés de l’app Twitter et hop c’est parti ! Si tout marche (si jamais ce n’est pas le cas pour vous, écrivez-moi dans les commentaires), on voit défiler les id (numéros) Twitter de vos followees dans le Terminal puis… Done.

Au premier lancement, les clés sont normalement demandées (mais j’ai triché un peu ici)

Deuxième étape
Après avoir listé tous mes followees, j’ai besoin de leurs propres listes de followees :

C’est la partie la plus longue car Twitter est gentil mais pas trop quand même. Il ne laissera le script effectuer que 15 actions toutes les 15 minutes. Pour mes 395 followees, cela m’a donc pris 6 heures 45.

Dernière étape
Désormais, twecoll a toutes les infos pour créer la liste des liens (edges) entre tous mes followees.

$ python2.7 twecoll edgelist -g -m jeremprx

Les options -g et -m servent respectivement à créer un fichier .gdf et à quand même inclure dans les données les followees dont toutes les informations n’ont pas été obtenues.

Calculs préliminaires

Direction Gephi. Là encore, je recommande les tutos de Luca Hammer et de Martin Grandjean.

Je vous remets également l’article sur la théorie des graphes :)

Nombre de nœuds et de liens

On lance donc Gephi, un nouveau projet et on ouvre notre fichier .gdf (ici jeremprx.gdf). On observe 398 nœuds et 8183 liens (je n’explique pas les 3 nœuds en plus, à part 1 qui est mon compte).

Arrêtons-nous quelques instants pour un petit calcul. Pour obtenir le nombre maximum de liens (edges) qui relieraient tout mon réseau de manière à ce que tout le monde se suive (une “clique”) il faudrait :

n(n-1) liens où n est le nombre de nœuds. On aurait donc ici 398(398–1)= 158 006 liens au maximum. Avec les 8022 liens, on en est loin, très exactement à 5,1 %. Gephi calcule également ce ratio de 5,1 % par lui-même qui est appelé Densité.

Sur ce point, on peut dire que mon réseau est plutôt hétérogène. Voyons de plus près.

Super, c’est très parlant

Degré, ou nombre de liens entrants et sortants

Gephi nous propose la moyenne du nombre de liens entrants et sortants par noeud, soit le nombre de followees pour les liens sortants et le nombre de followers (du réseau) pour les liens entrants.

Dans mon réseau, la moyenne du degré par noeud est de 20,56. La distribution est la suivante :

Exemple de lecture : il y a dix personnes qui suivent (out-degree) 20 personnes de mon réseau environ et une personne qui en suit 360 environ.

Diamètre

Si la personne la plus isolée dans mon réseau voulait faire passer un message à la personne la plus éloignée d’elle, en sachant que le mot ne peux circuler que de followee en followee, celui-ci passerait entre 6 personnes pour atteindre une septième personne. Ainsi, le diamètre de mon réseau est de 7 liens. Le chemin moyen est quant à lui de 2,54 liens.

Centralité Intermédiaire

La centralité intermédiaire mesure “la fréquence d’apparition d’un nœud sur les plus courts chemins entre les nœuds du réseau”.

Exemple : si A veut donner un message à D, il doit passer par B et C. Si B veut donner un message à D, il doit passer par C, etc. Une fois que toutes les possibilités sont parcourues, on calcule un score de centralité intermédiaire. Dans notre petit exemple, le ratio de A et de D est égal à zéro, celui de B à 1 et celui de C à 2.

Malgré la médiocre qualité du graphique (merci Gephi), on observe qu’une personne a un ratio de centralité intermédaire très important (> 60 000 — le petit point rouge tout à droite) et que 33 personnes ont un ratio égal à 0.

Modularité et detection de communauté

Pas facile d’expliquer clairement, alors je laisse Wikipédia le faire pour moi :)

La modularité est une mesure pour la qualité d’un partitionnement des nœuds d’un graphe, ou réseau, en communautés. […]
Le principe est qu’un bon partitionnement d’un graphe implique un nombre d’arêtes intra-communautaires important et un nombre d’arêtes inter-communautaires faible.
La modularité est décrite comme la proportion des arêtes incidentes sur une classe donnée moins la valeur qu’aurait été cette même proportion si les arêtes étaient disposées au hasard entre les nœuds du graphe. La modularité prend ses valeurs entre -1 et 1 inclus. On peut considérer qu’un graphe a une structure de communautés significative quand une partition obtient un score de modularité supérieur à 0,3. Source

Ici, la modularité est de 0,36 et l’algorithme détecte 6 communautés. Suspense…

Coefficient de clustering

Encore une notion qui n’est pas simple et se rapporte plutôt aux réseaux non dirigés (Facebook par exemple).

Le coefficient de clustering est une mesure permettant d’étudier les liens au niveau des triades — relations entre trois noeuds — et de vérifier si, lorsqu’il existe un lien entre les noeuds ab et bc, il existe également un lien entre les noeuds a et c, suivant en cela l’expression populaire « les ami-es- de mes ami-es- sont mes ami-e-s ». Source

Le coefficient de clustering peut être global ou local.

La formule du coefficient de clustering global est simple (nombre de triangles * 3 / nombre de triades connexes) et son interprétation aisée : l’indicateur varie entre 0 et 1, 0 dans le cas d’arbres par exemple, 1 quand chaque noeud appartient à une clique. Le terme triangle désigne une triade fermée.
Le coefficient de clustering local d’un noeud i est le rapport entre le nombre de noeuds voisins de i reliés les uns aux autres et le nombre de paires de voisins de i. Source

Algorithmes & co.

Avant de lancer les hostilités algorithmiques, deux réglages sont intéressants : colorer les six communautés et ajuster la taille des nœuds.

Je lance juste un algorithme pour mieux voir le pâté de nœuds et de liens... Et hop.

À gauche, la taille des nœuds est proportionnelle au nombre de liens entrants et à droite, à la centralité intermédiaire (le gros point, c’est… moi. Normal dans un sens).

Note: les algorithmes utilisés par la suite doivent être installés. Commencez avec GeoLayout, NoverlapLayout et Multimode Networks Transformation.

La suite se passe par là !

Si vous avez ❤ cet article, recommandez et partagez-le :) Merci !