machine learning; data mining; api design; object-oriented programming; programming library; scientific software
Résumé :
[en] scikit-learn is an increasingly popular machine learning library. Written in Python, it is designed to be simple and efficient, accessible to non-experts, and reusable in various contexts. In this paper, we present and discuss our design choices for the application programming interface (API) of the project. In particular, we describe the simple and elegant interface shared by all learning and processing units in the library and then discuss its advantages in terms of composition and reusability. The paper also comments on implementation details specific to the Python ecosystem and analyzes obstacles faced by users and developers of the library.
Disciplines :
Sciences informatiques
Auteur, co-auteur :
Buitinck, Lars
Louppe, Gilles ; Université de Liège - ULiège > Dép. d'électric., électron. et informat. (Inst.Montefiore) > Systèmes et modélisation
Blondel, Mathieu
Autre collaborateur :
Pedregosa, Fabian
Müller, Andreas
Grisel, Olivier
Niculae, Vlad
Prettenhofer, Peter
Gramfort, Alexandre
Grobler, Jaques
Layton, Robert
Vanderplas, Jake
Joly, Arnaud ; Université de Liège - ULiège > Dép. d'électric., électron. et informat. (Inst.Montefiore) > Systèmes et modélisation
Holt, Brian
Varoquaux, Gaël
Langue du document :
Anglais
Titre :
API design for machine learning software: experiences from the scikit-learn project
Date de publication/diffusion :
23 septembre 2013
Nombre de pages :
15
Nom de la manifestation :
ECML/PKDD 2013 Workshop: Languages for Data Mining and Machine Learning