Publication | Open Access
API design for machine learning software: experiences from the scikit-learn project
151
Citations
0
References
2013
Year
Artificial IntelligenceEngineeringMachine LearningElegant InterfaceApi DesignMachine Learning ToolComputer AnalysisSoftware EngineeringPython EcosystemSemantic WebSoftware AnalysisInteractive Machine LearningData ScienceData MiningManagementData IntegrationMachine Learning SoftwareScikit-learn ProjectData ModelingMachine Learning ModelFeature EngineeringKnowledge DiscoveryComputer ScienceAutomated Machine LearningDesign Choices
Scikit‑learn is a popular, Python‑based machine‑learning library designed to be simple, efficient, accessible to non‑experts, and reusable across contexts. The paper aims to present and discuss design choices for scikit‑learn’s application programming interface. The authors describe a simple, elegant interface shared by all learning and processing units, its advantages for composition and reusability, and discuss implementation details and obstacles specific to the Python ecosystem.
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.