All Projects → mlr-org → Mlr3pipelines

mlr-org / Mlr3pipelines

Licence: lgpl-3.0
Dataflow Programming for Machine Learning in R

Programming Languages

r
7636 projects

Projects that are alternatives of or similar to Mlr3pipelines

Mlj.jl
A Julia machine learning framework
Stars: ✭ 982 (+922.92%)
Mutual labels:  pipelines, ensemble-learning, stacking
Automlpipeline.jl
A package that makes it trivial to create and evaluate machine learning pipeline architectures.
Stars: ✭ 223 (+132.29%)
Mutual labels:  ensemble-learning, stacking
Vecstack
Python package for stacking (machine learning technique)
Stars: ✭ 587 (+511.46%)
Mutual labels:  ensemble-learning, stacking
Stacking
Stacked Generalization (Ensemble Learning)
Stars: ✭ 173 (+80.21%)
Mutual labels:  ensemble-learning, stacking
Stacking-Blending-Voting-Ensembles
This repository contains an example of each of the Ensemble Learning methods: Stacking, Blending, and Voting. The examples for Stacking and Blending were made from scratch, the example for Voting was using the scikit-learn utility.
Stars: ✭ 34 (-64.58%)
Mutual labels:  ensemble-learning, stacking
modeltime.ensemble
Time Series Ensemble Forecasting
Stars: ✭ 65 (-32.29%)
Mutual labels:  ensemble-learning, stacking
sl3
💪 🤔 Modern Super Learning with Machine Learning Pipelines
Stars: ✭ 93 (-3.12%)
Mutual labels:  ensemble-learning, stacking
dspatch
The Refreshingly Simple Cross-Platform C++ Dataflow / Pipelining / Stream Processing / Reactive Programming Framework
Stars: ✭ 124 (+29.17%)
Mutual labels:  pipelines, dataflow-programming
Mlens
ML-Ensemble – high performance ensemble learning
Stars: ✭ 680 (+608.33%)
Mutual labels:  ensemble-learning, stacking
Tfgraphviz
A visualization tool to show a TensorFlow's graph like TensorBoard
Stars: ✭ 40 (-58.33%)
Mutual labels:  dataflow-programming
Mlbox
MLBox is a powerful Automated Machine Learning python library.
Stars: ✭ 1,199 (+1148.96%)
Mutual labels:  stacking
Iceci
IceCI is a continuous integration system designed for Kubernetes from the ground up.
Stars: ✭ 29 (-69.79%)
Mutual labels:  pipelines
Gcforest
This is the official implementation for the paper 'Deep forest: Towards an alternative to deep neural networks'
Stars: ✭ 1,214 (+1164.58%)
Mutual labels:  ensemble-learning
Heroku Pipelines
this code is now in https://github.com/heroku/cli
Stars: ✭ 29 (-69.79%)
Mutual labels:  pipelines
Ck Tensorflow
Collective Knowledge components for TensorFlow (code, data sets, models, packages, workflows):
Stars: ✭ 90 (-6.25%)
Mutual labels:  pipelines
Elyra
Elyra extends JupyterLab Notebooks with an AI centric approach.
Stars: ✭ 839 (+773.96%)
Mutual labels:  pipelines
Plumber
The General-Purpose Cross-Language Dataflow Programming
Stars: ✭ 26 (-72.92%)
Mutual labels:  dataflow-programming
Incubator Hop
Hop Orchestration Platform
Stars: ✭ 94 (-2.08%)
Mutual labels:  pipelines
Xcessiv
A web-based application for quick, scalable, and automated hyperparameter tuning and stacked ensembling in Python.
Stars: ✭ 1,255 (+1207.29%)
Mutual labels:  ensemble-learning
Variable Injector
Continuous Integration Tool for Swift Projects
Stars: ✭ 63 (-34.37%)
Mutual labels:  pipelines

mlr3pipelines

Package website: release | dev

Dataflow Programming for Machine Learning in R.

tic CRAN StackOverflow Mattermost

What is mlr3pipelines?

Watch our “WhyR 2020” Webinar Presentation on Youtube for an introduction! Find the slides here.

WhyR 2020 mlr3pipelines

mlr3pipelines is a dataflow programming toolkit for machine learning in R utilising the mlr3 package. Machine learning workflows can be written as directed “Graphs” that represent data flows between preprocessing, model fitting, and ensemble learning units in an expressive and intuitive language. Using methods from the mlr3tuning package, it is even possible to simultaneously optimize parameters of multiple processing units.

In principle, mlr3pipelines is about defining singular data and model manipulation steps as “PipeOps”:

pca        = po("pca")
filter     = po("filter", filter = mlr3filters::flt("variance"), filter.frac = 0.5)
learner_po = po("learner", learner = lrn("classif.rpart"))

These pipeops can then be combined together to define machine learning pipelines. These can be wrapped in a GraphLearner that behave like any other Learner in mlr3.

graph = pca %>>% filter %>>% learner_po
glrn = GraphLearner$new(graph)

This learner can be used for resampling, benchmarking, and even tuning.

resample(tsk("iris"), glrn, rsmp("cv"))
#> <ResampleResult> of 10 iterations
#> * Task: iris
#> * Learner: pca.variance.classif.rpart
#> * Warnings: 0 in 0 iterations
#> * Errors: 0 in 0 iterations

Feature Overview

Single computational steps can be represented as so-called PipeOps, which can then be connected with directed edges in a Graph. The scope of mlr3pipelines is still growing; currently supported features are:

  • Simple data manipulation and preprocessing operations, e.g. PCA, feature filtering
  • Task subsampling for speed and outcome class imbalance handling
  • mlr3 Learner operations for prediction and stacking
  • Simultaneous path branching (data going both ways)
  • Alternative path branching (data going one specific way, controlled by hyperparameters)
  • Ensemble methods and aggregation of predictions

Documentation

The easiest way to get started is reading some of the vignettes that are shipped with the package, which can also be viewed online:

Bugs, Questions, Feedback

mlr3pipelines is a free and open source software project that encourages participation and feedback. If you have any issues, questions, suggestions or feedback, please do not hesitate to open an “issue” about it on the GitHub page!

In case of problems / bugs, it is often helpful if you provide a “minimum working example” that showcases the behaviour (but don’t worry about this if the bug is obvious).

Please understand that the resources of the project are limited: response may sometimes be delayed by a few days, and some feature suggestions may be rejected if they are deemed too tangential to the vision behind the project.

Similar Projects

A predecessor to this package is the mlrCPO-package, which works with mlr 2.x. Other packages that provide, to varying degree, some preprocessing functionality or machine learning domain specific language, are the caret package and the related recipes project, and the dplyr package.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].