Analyser graphiquement son réseau facebook

GephiHeaderGephi est un outil puissant de modélisation de réseaux qui a également l’avantage de sa grande simplicité : pas besoin de compétences particulières pour l’utiliser, excepté une certaine curiosité ! Cet outil est utilisés dans de nombreuses recherches, raison pour laquelle j’en propose ici un guide adapté à une large audience. Ce tutoriel, basé sur vos propres données facebook, peut évidemment être utilisé à d’autres fins, avec de nombreux types de données.

MISE A JOUR : Une version ultérieure de ce tutoriel a été publiée.

Table des matières

1. Préalable, une petite introduction à l’analyse de réseaux sociaux
2. Télécharger ses données depuis facebook
3. Nettoyer la base de données
4. Premiers pas avec Gephi
5. Les algorithmes de visualisation
6. Derniers détails
[Bonus] Jouer avec la détection de communautés

1. Préalable, une petite introduction à l’analyse de réseaux sociaux

ExamplePour produire un réseau, deux informations sont nécessaires: une liste des acteurs composant le réseau et une liste des relations entre ces acteurs. En tant que composants d’un objet mathématique, on appellera les acteurs “noeuds” et les relations “arêtes”. Ci-contre, on observe un graphe très simple, avec ses deux listes sources explicitées. Deux attributs sont ajoutés aux noeuds : un label (son nom) et un genre. Dans la liste des arêtes, les colonnes “Source” et “Target” réfèrent aux numéros d’identifiants des noeuds. Dans notre exemple, l’attribut de genre détermine la couleur des noeuds. La taille de ces derniers est dépendante de leur “degré” (le nombre d’arêtes qu’ils entretiennent avec les autres noeuds).

2. Télécharger ses données depuis Facebook

Cette étape n’est évidemment pas nécessaire à celles et ceux qui utilisent ce tutoriel pour produire un graphe à partir d’autres données

myfnetworkLancez l’application “myfnetwork” depuis Facebook, qui permet aux utilisateurs de cartographier leur réseau d’amis (égo-centré), mais dont les graphes sont parfaitement illisibles.

myfnetworkappRemplissez le formulaire comme suggéré ici (le layout style n’a pas d’importance) et cliquez sur get the picture pour obtenir cette mignonne (mais inutilisable) visualisation de votre réseau Facebook.

myfnetworkresultmyfnetworkdownloadMiraculeusement (enfin, pas tant que ça puisque j’ai choisi cette application pour cette unique raison), un bouton vous permettant de télécharger vos données est rendu disponible. Après avoir sélectionné “Gephi”, un fichier est téléchargé.

 

3. Nettoyer la base de données

Cette procédure s’applique à un fichier .txt (puis transformé en .csv). Comme l’application myfnetwork vous permet d’exporter un fichier .gdf, celui-ci peut être directement importé dans Gephi en sautant les étapes 3 et 4 de ce tutoriel. Ces étapes sont par contre nécessaires si vous utilisez ce tutoriel pour d’autres données.

file1file2Ouvrez votre fichier .txt dans un tableur. Les deux listes (noeuds et arêtes) sont fusionnées dans un seul document, mais vous reconnaîtrez rapidement les en-têtes qui séparent les deux listes.

Copiez la listes des noeuds (généralement bien plus courte que la liste des arêtes) et collez-la dans un autre tableur.

file3

Ensuite, effacez la liste des noeuds de son document original, ce dernier ne contient alors plus que la liste des arêtes.

Pour vous assurer de la compatibilité des données avec Gephi, renommez les en-têtes des deux documents comme suit :

files

-       Arêtes : Source,Target

-       Noeuds : Id,Label

Ensuite, enregistrez les deux fichiers dans le format .csv

4. Premiers pas avec Gephi

Pour commencer, il s’agit de télécharger le logiciel en question, à l’adresse suivante : https://gephi.org/users/download/

loadingGephiLogoCe tutoriel est basé sur la version beta 0.8.2 . Si vous rencontrez un problème du à une mise à jour ultérieure, n’hésitez pas à le faire savoir en commentaire de ce post. Ceci dit, ce genre de problème est peu probable.

Lancez l’application et ouvrez un « nouveau projet » dans le menu de mise en route.

Importer les noeuds

GephiDataLab

GephiImport

Dans le « Laboratoire de données », cliquez sur « importer feuille de calcul » pour ouvrir la fenêtre d’import.

GephiNodes2GephiNodesSpécifiez que le séparateur entre vos données est exprimé par une virgule et n’oubliez pas d’informer à Gephi que vous importez les noeuds, comme montré dans cet exemple. Pressez « Suite ».

Finalement, remplissez les champs requis comme montré ici (ci-contre à gauche).

Importer les arêtes

GephiEdgesGephiEdges2Follow the same procedure as for the nodes, but by filling it in the following manner: specify the comma and inform Gephi that this time you import the edges.

Fill in the last fields, and uncheck “create missing nodes”, because you’ve already imported them.

5. Les algorithmes de visualisation

GephiOverview

GephiRandomL’action se déroule désormais dans l’onglet « Prévisualisation ». D’emblée, le programme produit une spatialisation aléatoire du graph dont vous avez importé les noeuds et arêtes.

Eliminer le « bruit »

GephiGiantLa première opération consiste en réduisant le graphe à sa composante géante, à savoir la partie du graphe dans laquelle on trouve un chemin entre chaque couple de noeuds (bref, une élimination des noeuds orphelins, qui ne sont connectés à aucun autre noeud). Dans la colonne de droite, sélectionnez Filtre/Librairie/Topologie/Composante géante et confirmez en cliquant sur « Filtrer ».

Taille des noeuds

GephiDegreeDans le panneau « Ranking » (colonne de gauche en haut), sélectionnez « noeuds » et le diamant rouge (taille) puis sélectionnez « degré » dans le menu déroulant. Il faut ensuite entrer les valeurs minimales et maximales du diamètre des cercles (proposition : 20-200). Ensuite, cliquer sur le lien bleu « Spline » pour éditer le type de progression à appliquer au diamètre (choisir la 3e proposition, comme montré dans l’illustration ci-contre, pour tenir compte du fait que les valeurs affichent une surface).

Spatialisation

GephiFruchtermanC’est le plat de résistance ! Comme il est possible de jouer (et de se perdre) avec de très nombreuses possibilités de spatialisation, je vous propose une façon de faire qui a fait ses preuves et convient relativement bien aux réseaux facebook de 200-1000 personnes.

GephiFruchterman2

Commencez avec la spatialisation dite de Fruchterman Reingold (colonne de gauche, en bas), et utilisez les mêmes variables que dans l’exemple (50000 ; 10 ;1).

GephiForceAtlas1Cette visualisation dispose les noeuds de façon gravitationnelle (un équilibre d’attraction-répulsion, comme des aimants). A ce stade, vous pouvez déjà voir se dessiner des communautés très connectées. Laissez la fonction travailler jusqu’à ce que le graphe soit stabilisé.

GephiForceAtlas2Utilisez ensuite l’algorithme de spatialisation Force Atlas 2 pour disperser les groupes et donner plus d’espace aux noeuds. Soyez attentifs aux paramètres indiqués, il ont une influence significative sur l’apparence finale.

Couleur des noeuds

GephiColorComme il n’y a pas de catégories appliquées aux noeuds (ce qui aurait par exemple été le cas dans notre premier exemple où les noeuds sont classé selon leur genre), je vous propose d’utiliser une deuxième fois le degré des noeuds pour leur assigner une couleur.

GephiColor2Sans changement du « Spline », les derniers réglages s’appliquent. Ce n’est pas un problème. Sentez-vous libres et créatifs !

6. Derniers détails

GephiPreviewDans le menu « Aperçu », vous pouvez régler les derniers détails esthétiques.

A la différence des dernières étapes, les changements que vous appliquez ici au graphe sont réversibles et ne touchent pas à la structure/spatialisation de l’ensemble. Dans cette capture d’écran, vous trouvez une suggestion de réglages pour un rendement intéressant :

GephiFinalPreview

Notez que vous êtes libres d’afficher ou pas les labels des noeuds, à savoir les noms de vous contacts facebook.

Exportez votre oeuvre d’art

Au pied de la colonne de réglages, vous trouvez un lien d’export. Notez qu’exporter votre production en .png donne un document d’une résolution assez mauvaise. Vous avez meilleur temps de l’exporter en .pdf ou en .svg. Ce dernier format a le très grand avantage de pouvoir être modifié par la suite avec votre logiciel de traitement d’image favori (je vous recommande le programme open source Inkscape pour manipuler le .svg).

… et partagez-la !

N’hésitez pas à commenter cet article avec un lien permettant aux autres lecteurs de ce tutoriel de voir votre oeuvre !

Quelques réalisations transmises suite à ce tutoriel :

Bonus : Jouer avec la détection de communautés

GephiModularity1Un réseau d’utilisateurs facebook, à moins que vous n’apparteniez à un très petit groupe très soudé, contient des subdivisions internes appelées communautés. Il existe des méthodes qui permettent de mettre ces communautés en évidence, elles dépendent d’une comparaison de la densité des arêtes à l’intérieur d’un groupe avec la densité des arêtes qui relient ce groupe au reste du réseau. Apprenez-en plus ici !

GephiModularity2Dans la colonne de droite du menu « Prévisualisation », cliquez sur Statistiques/Modularité/Lancer pour afficher la fenêtre de modularité. Choisissez une résolution (entre 0.1 et 2), cliquez sur OK et fermez la fenêtre.

GephiModularity3La dernière étape se déroule dans la partie « partition » de la colonne de gauche. Sélectionnez « noeuds » puis « modularité » dans le menu déroulant. Vous avez la possibilité de modifier les couleurs attribuées aux différentes communautés détectées.

N’hésitez pas à répéter cette opérations avec plusieurs « résolutions » ! Si vous décidez d’en faire ainsi, vous devrez chaque fois désélectionner et resélectionner « modularité » dans la colonne de gauche, puis rafraichir le calcul des couleurs.

 Par exemple :

Communities6[Ce tutoriel est une traduction du tutoriel publié précédemment et par mes soins en anglais sur pegasusdata.com, retrouvez-le ici]