This is the first official and stable release of LearnAPI.jl, a new general API for machine learning and statistics. This is not a general ML toolbox but aims to support toolbox meta-algorithms, such as cross-validation, hyperparameter optimization, and model composition. Its design derives from:
-
My experience as lead developer and co-designer of the MLJ.jl machine learning toolbox
-
Substantial community feedback following an initial proposal in January, 2023.
Components
-
LearnAPI.jl: Method stubs + exhaustive documentation. Has zero dependencies.
-
LearnTestAPI.jl: Provides a test for almost all LearnAPI.jl contracts. Also provides several self-contained implementations of the API which can be used as exemplars or for testing meta-algorithms.
-
LearnDataFrontEnds.jl: Provides canned data front ends for LearnAPI.jl algorithms suited to many common use cases, such as supervised classification on structured data. It allows users to supply data in a variety of forms (matrices, tables, target as named column, table + R-style formula, etc) while freeing developers to focus on a standard array representation of the data + metadata.
Some personal remarks
Despite it’s success, I am increasingly distracted by projects outside of MLJ and I wanted to record some of the lessons learned during its development. I thought the most useful way to do this was write a new base API package, with the idea that it might ultimately replace MLJModelInterface. Writing this package turned out to consume a lot more of my volunteer time than expected, time that will need to go elsewhere moving forward.
Whether or not LearnAPI.jl replaces MLJModelInterface.jl, or is the basis for some MLJ2, is an open question. I do have some time to steer into such a project, but it will require additional support. Reach out if you think you can help.