Machine learning on GitHub

Rapport Octoverse sur le Machine Learning

Image of Thomas Elliott

Dans le rapport Octoverse 2018 de GitHub, il a été constaté que l’apprentissage automatique (Machine Learning) et la science des données (Data Science) étaient deux sujets très prisés sur GitHub. Ainsi, le projet tensorflow/tensorflow bénéficie de l’un des plus grands nombres de contributions, pytorch/pytorch est l’un des plus dynamiques, et Python se positionne sur la troisième marche du podium des langages les plus appréciés sur GitHub.

C’est la raison pour laquelle GitHub se penche aujourd’hui de plus près sur l’état du Machine Learning et la Data Science sur GitHub.

GitHub a ainsi extrait des données associées aux contributions effectuées entre le 1er janvier et le 31 décembre 2018, qu’il s’agisse de partager un morceau de code, d’ouvrir ou de commenter une issue ou une Pull Request, ou encore de réviser une Pull Request. GitHub a également utilisé les données du graphe de dépendances pour les librairies les plus importées. Ce graphe de dépendances inclut la totalité des dépôts publics ainsi que les dépôts privés ayant choisi d’activer cette fonctionnalité.

Langages de programmation

Top Machine Learning Languages on GitHub for 2018

GitHub a étudié les contributeurs aux dépôts arborant l’étiquette Machine Learning, et a classé les principaux langages les plus utilisés dans ces dépôts. Python pointe en tête parmi les référentiels liés au Machine Learning, et arrive en troisième position au classement général GitHub. A noter cependant que les activités liées au Machine Learning ne sont pas toutes associées à Python : certains des langages les plus courants sur GitHub sont également utilisés dans les projets de Machine Learning : C++, JavaScript, Java, C#, Shell, et TypeScript figurent dans le Top 10 des langages de GitHub, ainsi que dans le Top 10 des projets du Machine Learning. On trouve les langages Julia, R et Scala dans le Top 10 des projets de Machine Learning, mais pas sur GitHub au sens large. Julia et R sont deux langages couramment utilisés par les scientifiques des données (data scientists), et Scala est de plus en plus apprécié pour interagir avec des systèmes de Big Data comme Apache Spark.

Principales librairies utilisés pour le Machine Learning et la Data Science

Top packages imported by machine learning projects on GitHub for 2018

GitHub a extrait des données du graphe de dépendances pour calculer le pourcentage de projets associés au Machine Learning ou à la Data Science ayant importé des librairies Python populaires. La liste ci-dessus indique les Top 10 librairies importées par ces projets.

Numpy, une librairie qui prend en charge des opérations mathématiques sur des données multidimensionnelles, est la plus importée ; elle est utilisée dans près des trois quarts des projets de Machine Learning et de Data Science. Scipy, une librairie de calcul scientifique, pandas, une librairie de gestion de jeux de données, et matplotlib, une bibliothèque de visualisations, sont utilisées dans plus de 40 % des projets Machine Learning et de Data Science. Scikit-learn est une librairie de Machine Learning populaire qui contient des implémentations d’un grand nombre d’algorithmes de Machine Learning ; elle est utilisée dans près de 40 % des projets. Pour sa part, tensorflow, un outil conçu pour travailler avec des réseaux neuronaux, est employé dans près d’un quart des librairies. Les autres figurant dans le Top 10 sont des librairies utilitaires : six est une bibliothèque de compatibilité avec Python 2 et 3, tandis que python-dateutil et pytz sont conçus pour travailler avec des dates.

Principaux projets d’apprentissage automatique

Top machine learning projects on GitHub for 2018

GitHub s’est par ailleurs intéressé aux projets open source étiquetés « machine-learning » qui ont enregistré le plus grand nombre de contributions en 2018. Tensorflow est de loin le projet le plus populaire, avec plus de cinq fois plus de contributeurs que son dauphin, scikit-learn. Deux projets, explosion/spaCy et RasaHQ/rasa_nlu, sont consacrés aux problématiques de traitement en langage naturel (NLP), et quatre autres, CMU-Perceptual-Computing-Lab/openpose, thtrieu/darkflow, ageitgey/face_recognition et tesseract-ocr/tesseract, sont dédiés au traitement d’images. Le code source du langage Julia a également enregistré l’un des plus grands nombres de contributions en 2018.