随着数据科学的不断发展并朝着生产方向发展,实践团队的领导者不断提出一个问题:进行数据科学的适当方法是什么 - 编码或可视化编程?然而,这只是表达程序逻辑的两种不同方式。实践团队领导者真正应该问的是:适合我的数据科学团队的编程环境类型是什么?
答案是,这取决于。
如果您对新算法的来龙去脉感兴趣,甚至自己发明它们,那么编写代码是调整内部轮子或实现新工具的方法。
然而,很多时候,在进行数据科学来解决现实世界的问题时,数据科学家最终会花费大量时间处理访问、组织和清理数据等事情;从不同的软件包中尝试各种 AI/ML 方法;弄清楚如何从他们的结果中提取见解;或部署结果以便其他人可以使用它们。那是在他们开始担心数据/模型治理、可重复性或透明度等环境中出现的所有额外要求之前。
与编码方法相比,可视化编程为数据科学家提供了一个机会,让他们专注于数据科学,而不是代码行。为了帮助实践团队领导者更加熟悉这种鲜为人知的方法,让我们来看看可视化编程在实际作中的含义。
误解
可视化编程经常与无代码或低代码自动化平台混为一谈,其目标是让新的人群能够利用数据科学——以前因为不会编码而从未访问过的人。这些平台被炒作为均衡器,或者被视为“真正的”数据科学的愚蠢版本,这取决于你与谁交谈。
视觉编程的真正力量恰恰相反。它的创建是为了抽象数据科学家不必担心的所有内容,以便他们能够进行有影响力的数据科学。它不仅适用于标准、简单的任务,而复杂的方面则保留给编码人员。实际上,创建可视化工作流提供了一种不同的、高效的方式来表达程序的逻辑。
扩展您的选择
另一个现代现实是,数据科学不仅仅是用 Python 或 R 编程的。这两种语言都不是为数据库内的大量数据作而设计的。SQL 是。另一方面,将数据科学部署为 Web 应用程序需要 Web 编程,特别是用于交互式分析应用程序的 JavaScript。如果您想手动安排数据科学执行,您还需要知道如何设置 cron 作业。
为了创建真正的数据科学,实践团队领导者应该授权数据科学家使用所有很酷的方法,而不仅仅是一种语言中可用的方法。但是,通过相信唯一好的数据科学是手动编码的数据科学,很多可能性就被关闭了。实际上,可视化编程通过允许数据科学家混合其工具箱中的内容而不必担心兼容性问题来补充编码。越来越多的工具可以与众多云和第三方连接器集成,这可以让数据科学家感到非常兴奋。
通过使用新工具构建可视化工作流程,数据科学家可以做更多他们想做的事情和他们接受培训的事情:实施数据科学流程,以便数据洞察可以轻松应用于不同的业务需求。它需要专业知识和技能来了解何时以及如何部署哪些工具。因此,数据科学家必须结合以不同语言实现的工具,他们需要确保工具和了解它们的专家能够很好地协同工作,而不必担心底层语言和依赖关系。
可视化编程不仅仅是将 UI 放在编程语言之上。它是一个位于顶部并包含所有其他技术的编程环境。需要明确的是:这不是要隐藏数据科学家想要使用的工具的复杂性,而是要以一种一致的方式暴露所有必要的复杂性。
开车回家
可视化工作流程允许在一个统一的环境中公开数据科学过程的各个方面,从数据摄取到建模、可视化和最终部署。它们使数据科学家能够专注于他们最了解的事情:如何在一个环境中实现协作的同时理解数据,数据工程师构建机器学习工程师自己可能无法编写的工作流程。不过,ML 工程师理解它并且可以轻松重用它。
可视化工作流程还提供了一种清晰的方法来记录和传达整个数据科学过程中所做的事情,这使得审核以前的工作流程并稍后在解决新问题时应用它们变得简单,有点像提供“数据科学蓝图”——一个非常宝贵的工具。如果做得好,可视化工作流程允许探索性(或者我敢说“敏捷”)数据科学,能够快速原型化不同的数据摄取方式、建模算法的各种组合和交互式可视化,以及在找到正确的设置时轻松将结果推送到生产环境的能力。在更传统的编码环境中很难实现这种灵活性,因为需要付出努力和深思熟虑才能将数据科学管道中的每个步骤隔离得足够干净,以便尝试替代方案。
从我作为商业行业和学术界的数据科学家的角度来看,视觉环境是编程环境的自然演变,它暴露了适当的抽象级别和团队领导者希望数据科学家从事的工作实践类型所需的复杂性。它们还允许数据科学家专注于重要的事情,从而节省时间。
正如我的一位同事在为他的团队采用可视化工作流程后曾经说过的那样:“现在我们不需要花半年时间学习如何编码,我们就可以最终转向数据科学了。这几乎概括了可视化编程在现代进步思维方式下应用时的价值,这将是推进酷数据科学的关键。