VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks

VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks
复制标题

DOI:
10.1109/ase51524.2021.9678696
复制
发表时间:
2021-11
期刊:
2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)
影响因子:
--
通讯作者:
Rohan Bavishi;Shadaj Laddad;H. Yoshida;M. Prasad;Koushik Sen
Rohan Bavishi;Shadaj Laddad;H. Yoshida;M. Prasad;Koushik Sen
中科院分区:
其他
文献类型:
--
作者:
Rohan Bavishi;Shadaj Laddad;H. Yoshida;M. Prasad;Koushik Sen

文献摘要

相似文献

可视化被广泛用于传达发现并做出数据驱动的决策。不幸的是,创建定制和可重现的可视化需要使用诸如matplotlib之类的程序工具。这些工具呈现出陡峭的学习曲线,因为它们的文档通常缺乏足够的用法示例来帮助初学者开始或完成特定的任务。诸如Stackoverflow之类的论坛长期以来一直帮助开发人员在线搜索代码并将其调整以供其使用。但是,开发人员仍然必须筛选搜索结果并在调整其使用之前就了解代码。我们构建了一个称为Vizsmith的工具,该工具可以通过从Kaggle Notebooks挖掘可视化代码并创建7176可重复使用的Python python功能来实现可视化代码。给定数据集,可视化的列和用户的文本查询,Vizsmith搜索此数据库以获取适当的功能,运行它们并向用户显示生成的可视化。 Vizsmith的核心是一种新型的基于变质测试的方法,可以自动评估功能的可重复使用性,该方法将端到端的合成性能提高了10%,并将执行失败的数量减少了50%。
Visualizations are widely used to communicate findings and make data-driven decisions. Unfortunately creating bespoke and reproducible visualizations requires the use of procedural tools such as matplotlib. These tools present a steep learning curve as their documentation often lacks sufficient usage examples to help beginners get started or accomplish a specific task. Forums such as StackOverflow have long helped developers search for code online and adapt it for their use. However, developers still have to sift through search results and understand the code before adapting it for their use.We built a tool called VizSmith which enables code reuse for visualizations by mining visualization code from Kaggle notebooks and creating a database of 7176 reusable Python functions. Given a dataset, columns to visualize and a text query from the user, VizSmith searches this database for appropriate functions, runs them and displays the generated visualizations to the user. At the core of VizSmith is a novel metamorphic testing based approach to automatically assess the reusability of functions, which improves end-to-end synthesis performance by 10% and cuts the number of execution failures by 50%.