R 有 {drake},这使得创建可重现的数据管道变得容易。Python有类似的包吗?

数据挖掘 Python r 管道
2021-09-30 02:57:16

参见R 的 {drake}它允许您定义可重现的管道

plan <- drake_plan(
  raw_data = readxl::read_excel(file_in("raw_data.xlsx")),
  data = raw_data %>%
    mutate(Species = forcats::fct_inorder(Species)),
  hist = create_plot(data),
  fit = lm(Sepal.Width ~ Petal.Width + Species, data),
  report = rmarkdown::render(
    knitr_in("report.Rmd"),
    output_file = file_out("report.html"),
    quiet = TRUE
  )
)

# call the pipeline
make(plan)

德雷克的伟大之处在于你可以在任何时候重新加载任何raw_data, data, hist, fit, report如果您更改部分代码,make(plan){drake} 将找出哪个发生了更改并运行它。

3个回答

Sklearn有管道。如果您有fittransform属性迭代,您可以按Pipeline类在sklearn.pipeline.

阅读文档:

https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html

joblib.dump此外,您可以通过和保存和加载管道对象joblib.load

对于较大的项目,snakemake是 Python 的一种方式(它扩展了 Python 语法,有效的 Python 是有效的蛇形)。它起源于生物信息学,甚至有自己的出版物它被许多项目采用和使用(参见第一个链接中的文献列表或链接文章的引用)。

对于基于 Jupyter notebook 的项目,我做了一个名为nbpipeline的实验,你可能会感兴趣。

Ploomber 的工作方式相同,它跟踪您的源代码,并且只运行过时的步骤以使您的管道保持最新:https ://github.com/ploomber/ploomber

免责声明:我是项目的作者