MLJ.jl Projects – Summer of Code

MLJ is a machine learning framework for Julia aiming to provide a convenient way to use and combine a multitude of tools and models available in the Julia ML/Stats ecosystem.

List of projects

MLJ is released under the MIT license and sponsored by the Alan Turing Institute.

  1. MLJ.jl Projects – Summer of Code
      1. List of projects
    1. Machine Learning in Predictive Survival Analysis
      1. Description
      2. Prerequisites
      3. Your contribution
      4. References
    2. Deeper Bayesian Integration
      1. Description
      2. Your contributions
      3. References
      4. Difficulty: Medium to Hard
    3. Tracking and sharing MLJ workflows using MLFlow
      1. Description
      2. Prerequisites
      3. Your contribution
      4. References
    4. Speed demons only need apply
      1. Description
      2. Prerequisites
      3. Your contribution
      4. References
    5. Correcting for class imbalance in classification problems
      1. Description
      2. Prerequisites
      3. Your contribution
      4. References

Machine Learning in Predictive Survival Analysis

Implement survival analysis models for use in the MLJ machine learning platform.

Difficulty. Moderate - hard. Duration. 350 hours

Description

Survival/time-to-event analysis is an important field of Statistics concerned with understanding the distribution of events over time. Survival analysis presents a unique challenge as we are also interested in events that do not take place, which we refer to as 'censoring'. Survival analysis methods are important in many real-world settings, such as health care (disease prognosis), finance and economics (risk of default), commercial ventures (customer churn), engineering (component lifetime), and many more. This project aims to implement models for performing survivor analysis with the MLJ machine learning framework.

mlr3proba is currently the most complete survival analysis interface, let's get SurvivalAnalysisA.jl to the same standard - but learning from mistakes along the way.

Mentors. Sebastian Vollmer, Anthony Blaom,

Prerequisites

preferred.

Your contribution

You will work towards creating a survival analysis package with a range of metrics, capable of making distribution predictions for classical and ML models. You will bake in competing risks in early, as well as prediction transformations, and include both left and interval censoring. You will code up basic models (Cox PH and AFT), as well as one ML model as a proof of concept (probably decision tree is simplest or Coxnet).

Specifically, you will:

learning models in MLJ.

models not currently implemented in Julia.

References

Deeper Bayesian Integration

Bayesian methods and probabilistic supervised learning provide uncertainty quantification. This project aims increasing integration to combine Bayesian and non-Bayesian methods using Turing.

Difficulty. Difficult. Duration. 350 hours.

Description

As an initial step reproduce SOSSMLJ in Turing. The bulk of the project is to implement methods that combine multiple predictive distributions.

Your contributions

References

Bayesian Stacking SKpro

Difficulty: Medium to Hard

Mentors: Hong Ge Sebastian Vollmer

Tracking and sharing MLJ workflows using MLFlow

Help data scientists using MLJ track and share their machine learning experiments using MLFlow.

Difficulty. Moderate. Duration. 350 hours.

Description

MLFlow is an open source platform for the machine learning life cycle. It allows the data scientist to upload experiment metadata and outputs to the platform for reproducing and sharing purposes. This project aims to integrate the MLJ machine learning platform with MLFlow.

Prerequisites

Your contribution

References

Mentors. Deyan Dyankov (to be confirmed), Anthony Blaom, Diego Arenas.

Speed demons only need apply

Diagnose and exploit opportunities for speeding up common MLJ workflows.

Difficulty. Moderate. Duration. 350 hours.

Description

In addition to investigating a number of known performance bottlenecks, you will have some free reign in this to identify opportunities to speed up common MLJ workflows, as well as making better use of memory resources.

Prerequisites

Your contribution

In this project you will:

References

Mentors. Anthony Blaom, Okon Samuel.

Correcting for class imbalance in classification problems

Improve and extend Julia's offering of algorithms for correcting class imbalance, with a view to integration into MLJ and elsewhere.

Difficulty. Easy - moderate. Duration. 350 hours

Description

Many classification algorithms do not perform well when there is a class imbalance in the target variable (for example, many more positives than negatives). There are number of well-known data preprocessing algorithms, such as oversampling, for compensating for class imbalance. See for instance the python package imbalance-learn.

The Julia package ClassImbalance.jl provides some native Julia class imbalance algorithms. For wider adoption it is proposed that:

Mentor. Anthony Blaom.

Prerequisites

Your contribution

References

repository.