Contributions to MLJ are most welcome. Queries can be made through
issues or the Julia slack channel, #mlj.
Most larger MLJ repositories follow
this git
work-flow. In all cases please make
all pull requests to the default
branch of the appropriate repo (branch appearing on the repo's
landing page). This is
dev
for larger repos, and
master
otherwise. This includes changes to documentation.
Contributors are kindly requested to adhere to the
Blue style guide, with line
widths capped at 92 characters.
MLJ has a basement level
model interface, which must be implemented
for each new learning algorithm. Formally, each model is a `mutable
struct` storing hyperparameters and the implementer defines
model-dispatched
fit
and
predict
/
transform
methods; for details,
see
here. The general
user interacts using
machines which bind models with data and have
an internal state reflecting the outcomes of applying
fit!
and
predict
/
transform
methods on them. The model interface is pure
"functional"; the machine interface more "object-oriented".
A generalization of machine, called a
nodal machine, is a key
element of
learning networks which combine several models together,
and form the basis for specifying new composite model types. See
here
for more on these.
MLJ code is now spread over
multiple repositories.
Developers that can demonstrate prior experience in Julia and machine learning are welcome to consider working on one of these larger projects.