celesto
AI 에이전트를 위한 안전하고 영구적인 컴퓨터
mlr3에 다양한 파이프라인 연산자를 추가해 그래프 형태로 구성할 수 있는 데이터플로우 프로그래밍 툴킷
Dataflow programming toolkit that enriches mlr3 with a diverse set of pipelining operators (PipeOps) that can be composed into graphs. Operations exist for data preprocessing, model fitting, and ensem
개발 도구R · PythonGitHub @mlr-org온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Dataflow Programming for Machine Learning in R
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Package website: release | dev
Dataflow Programming for Machine Learning in R.
mlr3pipelines?Watch our “WhyR 2020” Webinar Presentation on Youtube for an introduction! Find the slides here.
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> with 10 resampling iterations
#> task_id learner_id resampling_id iteration warnings errors
#> iris pca.variance.classif.rpart cv 1 0 0
#> iris pca.variance.classif.rpart cv 2 0 0
#> iris pca.variance.classif.rpart cv 3 0 0
#> iris pca.variance.classif.rpart cv 4 0 0
#> iris pca.variance.classif.rpart cv 5 0 0
#> iris pca.variance.classif.rpart cv 6 0 0
#> iris pca.variance.classif.rpart cv 7 0 0
#> iris pca.variance.classif.rpart cv 8 0 0
#> iris pca.variance.classif.rpart cv 9 0 0
#> iris pca.variance.classif.rpart cv 10 0 0
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:
A good way to get into mlr3pipelines are the following two vignettes:
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.
If you use mlr3pipelines, please cite our JMLR article:
@Article{mlr3pipelines,
title = {{mlr3pipelines} - Flexible Machine Learning Pipelines in R},
author = {Martin Binder and Florian Pfisterer and Michel Lang and Lennart Schneider and Lars Kotthoff and Bernd Bischl},
journal = {Journal of Machine Learning Research},
year = {2021},
volume = {22},
number = {184},
pages = {1-7},
url = {https://jmlr.org/papers/v22/21-0281.html},
}
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.