Skip to content

Commit

Permalink
Merge branch 'dev' into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
abhro authored May 11, 2024
2 parents dc71382 + a719bd3 commit ce4bce2
Show file tree
Hide file tree
Showing 33 changed files with 362 additions and 9,425 deletions.
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ below. The Committee will respond to reports on a case-by-case basis.
following forums:

- the GitHub repository
[MLJ.jl](https://github.com/alan-turing-institute/MLJ.jl) (including
[MLJ.jl](https://github.com/JuliaAI/MLJ.jl) (including
all issues, discussions, and pull requests)

- all GitHub repositories in the [JuliaAI](https://github.com/JuliaAI)
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ channel](https://julialang.org/slack/), #mlj.
- [Code organization](ORGANIZATION.md)

- Issues: Currently issues are split between [MLJ
issues](https://github.com/alan-turing-institute/MLJ.jl/issues) and
issues](https://github.com/JuliaAI/MLJ.jl/issues) and
issues in all other repositories, collected in [this GitHub
Project](https://github.com/orgs/JuliaAI/projects/1).

Expand Down Expand Up @@ -43,7 +43,7 @@ an internal state reflecting the outcomes of applying `fit!` and
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](https://alan-turing-institute.github.io/MLJ.jl/dev/composing_models/)
[here](https://JuliaAI.github.io/MLJ.jl/dev/composing_models/)
for more on these.

MLJ code is now spread over [multiple repositories](ORGANIZATION.md).
Expand Down
145 changes: 64 additions & 81 deletions ORGANIZATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,102 +8,85 @@ connections do not currently exist but are planned/proposed.*
Repositories of some possible interest outside of MLJ, or beyond
its conventional use, are marked with a ⟂ symbol:

* [MLJ.jl](https://github.com/alan-turing-institute/MLJ.jl) is the
general user's point-of-entry for choosing, loading, composing,
evaluating and tuning machine learning models. It pulls in most code
from other repositories described below. MLJ also hosts the [MLJ
manual](src/docs) which documents functionality across the
repositories, with the exception of ScientificTypesBase, and
MLJScientific types which host their own documentation. (The MLJ
manual and MLJTutorials do provide overviews of scientific types.)

* [MLJModelInterface.jl](https://github.com/JuliaAI/MLJModelInterface.jl)
is a lightweight package imported by packages implementing MLJ's
interface for their machine learning models. It's only dependencies
are ScientificTypesBase.jl (which depends only on the standard
library module `Random`) and
[StatisticalTraits.jl](https://github.com/JuliaAI/StatisticalTraits.jl)
(which depends only on ScientificTypesBase.jl).
* [MLJ.jl](https://github.com/JuliaAI/MLJ.jl) is the general user's point-of-entry for
choosing, loading, composing, evaluating and tuning machine learning models. It pulls in
most code from other repositories described below. MLJ also hosts the [MLJ
manual](src/docs) which documents functionality across the repositories, although some
pages point to documentation hosted locally by a particular package.


* [MLJModelInterface.jl](https://github.com/JuliaAI/MLJModelInterface.jl) is a lightweight
package imported by packages implementing MLJ's interface for their machine learning
models. It's only dependencies are ScientificTypesBase.jl (which depends only on the
standard library module `Random`) and
[StatisticalTraits.jl](https://github.com/JuliaAI/StatisticalTraits.jl) (which depends
only on ScientificTypesBase.jl).

* (⟂)
[MLJBase.jl](https://github.com/JuliaAI/MLJBase.jl) is
a large repository with two main purposes: (i) to give "dummy"
methods defined in MLJModelInterface their intended functionality
(which depends on third party packages, such as
* (⟂) [MLJBase.jl](https://github.com/JuliaAI/MLJBase.jl) is a large repository with two
main purposes: (i) to give "dummy" methods defined in MLJModelInterface their intended
functionality (which depends on third party packages, such as
[Tables.jl](https://github.com/JuliaData/Tables.jl),
[Distributions.jl](https://github.com/JuliaStats/Distributions.jl)
and
[CategoricalArrays.jl](https://github.com/JuliaData/CategoricalArrays.jl));
and (ii) provide functionality essential to the MLJ user that has
not been relegated to its own "satellite" repository for some
reason. See the [MLJBase.jl
readme](https://github.com/JuliaAI/MLJBase.jl) for a
detailed description of MLJBase's contents.
[Distributions.jl](https://github.com/JuliaStats/Distributions.jl) and
[CategoricalArrays.jl](https://github.com/JuliaData/CategoricalArrays.jl)); and (ii)
provide functionality essential to the MLJ user that has not been relegated to its own
"satellite" repository for some reason. See the [MLJBase.jl
readme](https://github.com/JuliaAI/MLJBase.jl) for a detailed description of MLJBase's
contents.

* [StatisticalMeasures.jl](https://github.com/JuliaAI/StatisticalMeasures.jl) provifes
* [StatisticalMeasures.jl](https://github.com/JuliaAI/StatisticalMeasures.jl) provides
performance measures (metrics) such as losses and scores.

* [MLJModels.jl](https://github.com/JuliaAI/MLJModels.jl)
hosts the *MLJ model registry*, which contains metadata on all the
models the MLJ user can search and load from MLJ. Moreover, it
provides the functionality for **loading model code** from MLJ on
demand. Finally, it furnishes some commonly used transformers for
data pre-processing, such as `ContinuousEncoder` and `Standardizer`.
* [MLJModels.jl](https://github.com/JuliaAI/MLJModels.jl) hosts the *MLJ model registry*,
which contains metadata on all the models the MLJ user can search and load from
MLJ. Moreover, it provides the functionality for **loading model code** from MLJ on
demand. Finally, it furnishes some commonly used transformers for data pre-processing,
such as `ContinuousEncoder` and `Standardizer`.

* [MLJTuning.jl](https://github.com/JuliaAI/MLJTuning.jl)
provides MLJ's `TunedModel` wrapper for hyper-parameter
optimization, including the extendable API for tuning strategies,
and selected in-house implementations, such as `Grid` and
`RandomSearch`.
* [MLJTuning.jl](https://github.com/JuliaAI/MLJTuning.jl) provides MLJ's `TunedModel`
wrapper for hyper-parameter optimization, including the extendable API for tuning
strategies, and selected in-house implementations, such as `Grid` and `RandomSearch`.

* [MLJEnsembles.jl](https://github.com/JuliaAI/MLJEnsembles.jl)
provides MLJ's `EnsembleModel` wrapper, for creating homogenous
model ensembles.
* [MLJEnsembles.jl](https://github.com/JuliaAI/MLJEnsembles.jl) provides MLJ's
`EnsembleModel` wrapper, for creating homogeneous model ensembles.

* [MLJIteration.jl](https://github.com/JuliaAI/MLJIteration.jl)
provides the `IteratedModel` wrapper for controlling iterative
models (snapshots, early stopping criteria, etc)
* [MLJIteration.jl](https://github.com/JuliaAI/MLJIteration.jl) provides the
`IteratedModel` wrapper for controlling iterative models (snapshots, early stopping
criteria, etc)

* (⟂)
[OpenML.jl](https://github.com/JuliaAI/OpenML.jl) provides
integration with the [OpenML](https://www.openml.org) data science
exchange platform
* [MLJFlow.jl](https://github.com/JuliaAI/MLJFlow.jl) provides integration with the
platform-agnostic machine learning tracking tool [MLflow](https://mlflow.org).

* (⟂)
[MLJLinearModels.jl](https://github.com/JuliaAI/MLJLinearModels.jl)
is an experimental package for a wide range of julia-native penalized linear models
such as Lasso, Elastic-Net, Robust regression, LAD regression,
etc.
* (⟂) [OpenML.jl](https://github.com/JuliaAI/OpenML.jl) provides integration with the
[OpenML](https://www.openml.org) data science exchange platform

* (⟂) [MLJLinearModels.jl](https://github.com/JuliaAI/MLJLinearModels.jl) provides a wide
range of julia-native penalized linear models such as Lasso, Elastic-Net, Robust
regression, LAD regression, etc.

* [MLJFlux.jl](https://github.com/FluxML/MLJFlux.jl) an experimental
package for gradient-descent models, such as traditional
neural-networks, built with
* [MLJFlux.jl](https://github.com/FluxML/MLJFlux.jl) an experimental package for
gradient-descent models, such as traditional neural-networks, built with
[Flux.jl](https://github.com/FluxML/Flux.jl), in MLJ.

* (⟂)
[ScientificTypesBase.jl](https://github.com/JuliaAI/ScientificTypesBase.jl)
is an ultra lightweight package providing "scientific" types,
such as `Continuous`, `OrderedFactor`, `Image` and `Table`. It's
purpose is to formalize conventions around the scientific
interpretation of ordinary machine types, such as `Float32` and
* (⟂) [ScientificTypesBase.jl](https://github.com/JuliaAI/ScientificTypesBase.jl) is an
ultra lightweight package providing "scientific" types, such as `Continuous`,
`OrderedFactor`, `Image` and `Table`. It's purpose is to formalize conventions around
the scientific interpretation of ordinary machine types, such as `Float32` and
`DataFrame`.

* (⟂)
[ScientificTypes.jl](https://github.com/JuliaAI/ScientificTypes.jl)
articulates the particular convention for the scientific interpretation of
data that MLJ adopts
* (⟂) [ScientificTypes.jl](https://github.com/JuliaAI/ScientificTypes.jl) articulates the
particular convention for the scientific interpretation of data that MLJ adopts

* (⟂)
[StatisticalTraits.jl](https://github.com/JuliaAI/StatisticalTraits.jl)
An ultra lightweight package defining fall-back implementations for
a collection of traits possessed by statistical objects, principally
models and measures (metrics).
* (⟂) [StatisticalTraits.jl](https://github.com/JuliaAI/StatisticalTraits.jl) An ultra
lightweight package defining fall-back implementations for a collection of traits
possessed by statistical objects, principally models and measures (metrics).

* (⟂) [DataScienceTutorials](https://github.com/JuliaAI/DataScienceTutorials.jl) collects
tutorials on how to use MLJ, which are deployed
[here](https://JuliaAI.github.io/DataScienceTutorials.jl/)

* (⟂)
[DataScienceTutorials](https://github.com/alan-turing-institute/DataScienceTutorials.jl)
collects tutorials on how to use MLJ, which are deployed
[here](https://alan-turing-institute.github.io/DataScienceTutorials.jl/)
* [MLJTestInterface](https://github.com/JuliaAI/MLJTestInterface.jl) provides tests for
implementations of the MLJ model interface

* [MLJTestIntegration](https://github.com/JuliaAI/MLJTestIntegration.jl)
provides tests for implementations of the MLJ model interface, and
integration tests for the entire MLJ ecosystem
* [MLJTestIntegration](https://github.com/JuliaAI/MLJTestIntegration.jl) provides tests
for the entire MLJ ecosystem. (Called when you run `ENV["MLJ_TEST_INTEGRATION"]="true";
Pkg.test("MLJ")`.
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

<h2 align="center">A Machine Learning Framework for Julia
<p align="center">
<a href="https://github.com/alan-turing-institute/MLJ.jl/actions">
<img src="https://github.com/alan-turing-institute/MLJ.jl/workflows/CI/badge.svg"
<a href="https://github.com/JuliaAI/MLJ.jl/actions">
<img src="https://github.com/JuliaAI/MLJ.jl/workflows/CI/badge.svg"
alt="Build Status">
</a>
<a href="https://alan-turing-institute.github.io/MLJ.jl/dev/">
<a href="https://JuliaAI.github.io/MLJ.jl/dev/">
<img src="https://img.shields.io/badge/docs-stable-blue.svg"
alt="Documentation">
</a>
Expand All @@ -28,28 +28,29 @@
MLJ (Machine Learning in Julia) is a toolbox written in Julia
providing a common interface and meta-algorithms for selecting,
tuning, evaluating, composing and comparing about [200 machine learning
models](https://alan-turing-institute.github.io/MLJ.jl/dev/model_browser/#Model-Browser)
models](https://JuliaAI.github.io/MLJ.jl/dev/model_browser/#Model-Browser)
written in Julia and other languages.

**New to MLJ?** Start [here](https://alan-turing-institute.github.io/MLJ.jl/dev/).
**New to MLJ?** Start [here](https://JuliaAI.github.io/MLJ.jl/dev/).

**Integrating an existing machine learning model into the MLJ
framework?** Start [here](https://alan-turing-institute.github.io/MLJ.jl/dev/quick_start_guide_to_adding_models/).
framework?** Start [here](https://JuliaAI.github.io/MLJ.jl/dev/quick_start_guide_to_adding_models/).

**Wanting to contribute?** Start [here](CONTRIBUTING.md).

**PhD and Postdoc opportunies** See [here](https://sebastian.vollmer.ms/jobs/).

MLJ was initially created as a Tools, Practices and Systems project at
the [Alan Turing Institute](https://www.turing.ac.uk/)
in 2019. Current funding is provided by a [New Zealand Strategic
in 2019. Funding has also been provided by a [New Zealand Strategic
Science Investment
Fund](https://www.mbie.govt.nz/science-and-technology/science-and-innovation/funding-information-and-opportunities/investment-funds/strategic-science-investment-fund/ssif-funded-programmes/university-of-auckland/)
awarded to the University of Auckland.

MLJ has been developed with the support of the following organizations:

<div align="center">
<img src="material/DFKI.png" width = 100/>
<img src="material/Turing_logo.png" width = 100/>
<img src="material/UoA_logo.png" width = 100/>
<img src="material/IQVIA_logo.png" width = 100/>
Expand Down
Loading

0 comments on commit ce4bce2

Please sign in to comment.