API design for machine learning software: experiences from the scikit-learn project

Lars Buitinck, Gilles Louppe(Institut national de recherche en sciences et technologies du numérique), Mathieu Blondel(Institut national de recherche en sciences et technologies du numérique), Fabián Pedregosa(Institut national de recherche en sciences et technologies du numérique), Andreas Müller(Institut national de recherche en sciences et technologies du numérique), Olivier Grisel(Institut national de recherche en sciences et technologies du numérique), Vlad Niculae(Institut national de recherche en sciences et technologies du numérique), Peter Prettenhofer(Institut national de recherche en sciences et technologies du numérique), Alexandre Gramfort(Institut national de recherche en sciences et technologies du numérique), Jaques Grobler(Institut national de recherche en sciences et technologies du numérique), Robert Layton(Institut national de recherche en sciences et technologies du numérique), Jake Vanderplas(Institut national de recherche en sciences et technologies du numérique), Arnaud Joly(Institut national de recherche en sciences et technologies du numérique), Brian D. Holt(Institut national de recherche en sciences et technologies du numérique), Gaël Varoquaux(Institut national de recherche en sciences et technologies du numérique)
arXiv (Cornell University)
September 1, 2013
Cited by 160Open Access
Full Text

Abstract

Scikit-learn is an increasingly popular machine learning li- brary. 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.


Related Papers

No related papers found

Powered by citation graph analysis