JuliaAI / MLJ.jl

A Julia machine learning framework
https://juliaai.github.io/MLJ.jl/
Other
1.76k stars 157 forks source link

Draft statement comparing MLJ with ScikitLearn #90

Closed ablaom closed 5 years ago

ablaom commented 5 years ago

The purpose of this thread is to hash out a statement, to be linked to from the MLJ README.md, explaining why - despite the existence of ScikitLearn.jl - one might be interested in using or contributing to MLJ. It seems this question is going to pop up quite a bit.

This thread is not intended to be an extended debate. I just want to make sure I get all the most pertinent points down and that the statement is factually correct. Feel free to critique or suggest a new item.


An alternative machine learning toolbox for Julia users is [ScikitLearn.jl](). Initially, intended as a Julia wrapper for the popular python library [scikit-learn](), ML algorithms written in Julia can also implement the ScikitLearn.jl API. Meta-algorithms (systematic tuning, pipelining, and so forth) remain python wrapped code, however.

While ScitkiLearn.jl provides the Julia user with access to a mature and large library of machine learning models, the scikit-learn API on which it is modelled, dating back to 2007, is not likely to evolve significantly in the future. MLJ enjoys (or will enjoy) several features that should make it an attractive alternative in the longer term:

Finally, we note that there is a project underway to implement (some of) the ScikitLearn.jl models as MLJ models, as an temporary expedient.

fkiraly commented 5 years ago

Very nice!

Maybe mention task interface and model meta-data register separately? And that, combined, these would facilitate automated model lookup and pipeline building?

Also, maybe "combining models" -> "model composition"?

ablaom commented 5 years ago

Suggestions incorporated. Statement pushed to repo with readme link.