%0 Conference Proceedings %T API design for machine learning software: experiences from the scikit-learn project %+ Information and Language Processing Systems (ILPS) %+ Systems and Modeling Research Unit %+ Kobe University %+ Modelling brain structure, function and variability based on high-field MRI data (PARIETAL) %+ Autonomous Intelligent Systems Group %+ Chercheur indépendant %+ Computational Linguistics %+ Ciuvo GMBH %+ Laboratoire Traitement et Communication de l'Information (LTCI) %+ Science Information Technology and Engineering %+ University of Washington [Seattle] %+ Samsung Electronics Research Institute %A Buitinck, Lars %A Louppe, Gilles %A Blondel, Mathieu %A Pedregosa, Fabian %A Mueller, Andreas %A Grisel, Olivier %A Niculae, Vlad %A Prettenhofer, Peter %A Gramfort, Alexandre %A Grobler, Jaques %A Layton, Robert %A Vanderplas, Jake %A Joly, Arnaud %A Holt, Brian %A Varoquaux, Gaël %< avec comité de lecture %B European Conference on Machine Learning and Principles and Practices of Knowledge Discovery in Databases %C Prague, Czech Republic %8 2013-09-23 %D 2013 %Z 1309.0238 %K Machine learning %K language design %K software engineering %K Python %Z Computer Science [cs]/Machine Learning [cs.LG]Conference papers %X 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. %G English %2 https://inria.hal.science/hal-00856511v1/document %2 https://inria.hal.science/hal-00856511v1/file/paper.pdf %L hal-00856511 %U https://inria.hal.science/hal-00856511 %~ CEA %~ CNRS %~ INRIA %~ ENST %~ INRIA-SACLAY %~ TELECOM-PARISTECH %~ PARISTECH %~ INRIA_TEST %~ TESTALAIN1 %~ INRIA2 %~ JOLIOT %~ CEA-DRF %~ NEUROSPIN %~ LTCI %~ INSTITUTS-TELECOM %~ INRIA-JAPON %~ INRIA-ETATSUNIS %~ INRIA-AUSTRALIE %~ INRIA-ROYAUMEUNI %~ INRIA-ALLEMAGNE %~ INSTITUT-MINES-TELECOM