Hi, thanks for those clarifications @ikerarslan and the positive feedback about MLJ. I am a co-creator of MLJ and its lead developer.
I wanted to explain a little about LearnAPI.jl, which is a newer project I also lead (very part-time). There we are trying to design an all-purpose, basic ML API for the future, informed by missteps and other lessons learned, implementing interfaces for over 200 models in MLJ, over about 5 years. At some point this may replace MLJModelInterface.jl as the foundation of MLJ, but that point is some distance away.
Given your feedback, one significant feature of LearnAPI.jl may appeal to you. Unlike the interface at MLJModelInterface.jl, which is largely private to the general user, intended for convenience of implementation by new ML algorithms, we are trying to simultaneously make LearnAPI a user-friendly, public API. So, in the MLJ of the future, you might dodge the higher-level “machine” abstraction, if that is not your cup of tea. I think you’ll find that LearnAPI.jl syntax (still a WIP) is not so different from your own.
LearnAPI.jl is not yet set cast in stone, and you can give your own input at this discussion thread. A rather substantial revision of the original proposal (still a WIP) is here.