Data Scientists often use notebooks to develop Data Science (DS) pipelines, particularly since they allow to selectively execute parts of the pipeline. However, notebooks for DS have many well-known flaws. We focus on the following ones in this paper: (1) Notebooks can become littered with code cells that are not part of the main DS pipeline but exist solely to make decisions (e.g. listing the columns of a tabular dataset). (2) While users are allowed to execute cells in any order, not every ordering is correct, because a cell can depend on declarations from other cells. (3) After making changes to a cell, this cell and all cells that depend on changed declarations must be rerun. (4) Changes to external values necessitate partial re-execution of the notebook. (5) Since cells are the smallest unit of execution, code that is unaffected by changes, can inadvertently be re-executed. To solve these issues, we propose to replace cells as the basis for the selective execution of DS pipelines. Instead, we suggest populating a context-menu for variables with actions fitting their type (like listing columns if the variable is a tabular dataset). These actions are executed based on a data-flow analysis to ensure dependencies between variables are respected and results are updated properly after changes. Our solution separates pipeline code from decision making code and automates dependency management, thus reducing clutter and the risk of making errors.
翻译:数据科学家经常使用笔记本来开发数据科学(DS)管道,特别是因为这些笔记本允许有选择地执行管道的部分管道。然而,DS的笔记本有许多众所周知的缺陷。我们在本文中侧重于以下的缺陷:(1)笔记本可能堆满不属于DS管道的主要管道,但仅存于决策的代码单元(例如列出表格数据集的柱子)。(2)虽然用户可以按任何顺序执行单元格,但并不是每个订单都是正确的,因为一个单元格可以取决于其他单元格的申报。(3)在对一个单元格进行修改后,这个单元格和所有依赖于变更声明的单元格都必须重新运行。(4) 外部价值的改变需要部分重新执行笔记本。(5) 由于细胞是最小的执行单位,不受变化影响的代码,因此可以无意中重新执行。为了解决这些问题,我们建议替换单元格作为选择性地执行DS管道的基础。相反,我们建议用一个背景菜单来根据适合其类型的行动来配置一个变量(例如,如果变量是列表列,则需要部分重新运行笔记本笔记本笔记本。(5)由于细胞是受到修改的路径,因此,因此,因此可以进行自动分析。这些动作是根据一个不同的数据流,这些动作来确保我们的决定变化的顺序,这些动作是根据一种不同的数据流分析。这些动作,这些动作,这些动作是根据一种稳定的计算。</s>