Newsroom

Scikit-network : analyse de graphes en Python

Scikit-network est une librairie Python pour l’analyse de graphes de grande taille comme les réseaux sociaux, les graphes du Web et les données relationnelles, développée depuis mai 2018 à Télécom Paris.

La libraire offre des algorithmes de l’état de l’art pour traiter ces graphes, en comprendre la structure, en extraire les principaux clusters et les noeuds les plus représentatifs. Elle embarque également des outils de visualisation permettant d’exporter des images vectorielles de graphes, au format SVG.

Le projet scikit-network est guidé par deux exigences, souvent contradictoires en pratique : ergonomie et performance. Côté ergonomie, la librairie s’installe en une ligne de commande via le gestionnaire de paquets pip, et repose sur la même API que scikit-learn, librairie Python de référence en machine learning. Côté performance, le code utilise l’efficacité des multiplications matrice-vecteur de SciPy, du code compilé reposant sur le langage Cython et du calcul parallèle. Le résultat est une librairie à la fois facile d’usage et performante sur de très grands graphes, ce qui la démarque de ses principaux concurrents (NetworkX, graph-tool et iGraph).

Les applications de scikit-network sont nombreuses : recommandation de contenus, classification automatique de documents, constitution de cohortes dans le domaine médical, etc. Les graphes associés (ici respectivement entre utilisateurs et contenus, documents et mots, patients et code médicaux) peuvent contenir des milliers voire des millions de noeuds. Quelques lignes de code suffisent à en comprendre la structure et en extraire les informations pertinentes.

La librairie scikit-network est développée à Télécom Paris au sein de l’équipe DIG par le Professeur Thomas Bonald et ses doctorants Nathan de Lara et Quentin Lutz. La documentation inclut des tutoriels permettant de comprendre rapidement les principaux algorithmes et leur application. Suivant la politique open source de l’école, cette librairie Python est dorénavant utilisée en enseignement, à la fois en formation initiale et en formation continue.