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.


翻译:数据科学家常使用笔记本开发数据科学管道,因其允许选择性执行管道的部分内容。然而用于数据科学的笔记本存在诸多公认缺陷。本文重点关注以下问题:(1) 笔记本可能充斥着不属于主数据科学管道、仅用于决策的代码单元(例如列出表格数据集的列名)。(2) 虽然用户可按任意顺序执行单元,但并非所有顺序都正确,因为单元可能依赖其他单元的声明。(3) 修改某单元后,该单元及所有依赖修改后声明的单元必须重新执行。(4) 外部值的变化需要笔记本的部分重新执行。(5) 由于单元是最小执行单位,不受变更影响的代码可能被意外重新执行。为解决这些问题,我们提出用替代方案取代单元作为数据科学管道选择性执行的基础。具体而言,建议在变量上下文菜单中填充适配其类型的操作(如对表格数据集变量执行"列出列名"操作)。这些操作基于数据流分析执行,确保尊重变量间的依赖关系,并在变更后正确更新结果。本方案将管道代码与决策代码分离,并自动化依赖管理,从而减少混乱和出错风险。

0
下载
关闭预览

相关内容

【2022新书】Python数据分析第三版,579页pdf
专知会员服务
255+阅读 · 2022年8月31日
专知会员服务
78+阅读 · 2021年3月16日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
是否应该在 Kubernetes 上运行数据库?
CSDN
0+阅读 · 2022年9月1日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
深度学习医学图像分析文献集
机器学习研究会
19+阅读 · 2017年10月13日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
【推荐】RNN/LSTM时序预测
机器学习研究会
25+阅读 · 2017年9月8日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Arxiv
0+阅读 · 2023年5月26日
Arxiv
0+阅读 · 2023年5月25日
VIP会员
最新内容
综述 | OPSD:大语言模型的在线策略自蒸馏
专知会员服务
3+阅读 · 6月1日
帕兰蒂尔Maven:军事人工智能的新纪元
专知会员服务
8+阅读 · 6月1日
超越网格:作战环境对炮兵的影响
专知会员服务
3+阅读 · 5月31日
BES:让语言模型通过双向进化搜索自我改进
专知会员服务
6+阅读 · 5月30日
以色列-美国-伊朗战争中的无人机:关键要点
专知会员服务
7+阅读 · 5月30日
相关VIP内容
【2022新书】Python数据分析第三版,579页pdf
专知会员服务
255+阅读 · 2022年8月31日
专知会员服务
78+阅读 · 2021年3月16日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
相关资讯
是否应该在 Kubernetes 上运行数据库?
CSDN
0+阅读 · 2022年9月1日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
深度学习医学图像分析文献集
机器学习研究会
19+阅读 · 2017年10月13日
【推荐】MXNet深度情感分析实战
机器学习研究会
16+阅读 · 2017年10月4日
【推荐】RNN/LSTM时序预测
机器学习研究会
25+阅读 · 2017年9月8日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员