注意: 虽然 JavaScript 对于本网站不是必需的,但您与内容的互动将受到限制。请开启 JavaScript 以获得完整的体验。

在 Einblick 的可视化画布中,使用基于 Python 的算子重构数据科学

目前,数据科学家与其团队成员和相关利益相关者之间存在隔阂。首先,数据科学家需要收集原始数据,或者通过 ETL 或 ELT 管道与数据工程师协作。然后开始清理数据和针对当前任务或项目进行探索性数据分析的过程。这个步骤可能非常耗时,因为它本质上是迭代的。只有这样,数据科学家才能开始构建和调整机器学习模型。

Einblick canvas

Einblick:以思维的速度进行协作式数据科学

Einblick,我们的目标之一是为数据科学家消除障碍,这样您就可以花更少的时间在繁琐的设置和重复性任务上,而将更多时间用于提取有意义的见解。为了实现我们的目标,Einblick 在协作式数据科学画布中重新构想了现代数据科学工作流程,而不是线性的 Jupyter Notebook。在画布环境中工作具有许多优点,包括实时协作、广阔的可视化界面和渐进式计算引擎。在本文中,我们将重点介绍我们如何为数据科学家节省时间的关键方法之一——我们的操作符。我们将介绍几个核心操作符,为什么 Python 是我们软件解决方案中如此重要的一部分,以及我们如何通过用户操作符界面增强我们的产品。后者允许用户自定义和使用自己的操作符,这些操作符可以在任何 Einblick 画布中使用,并与其他 Einblick 用户共享。

数据科学画布中的操作符

目前数据科学家的主要低效之处在于,某些任务或代码片段会一直运行,例如数据探索或特征工程。尽管这些任务可能枯燥且重复,但它们对数据科学工作流程至关重要。

我们平台的核心部分是我们的操作符。Einblick 操作符都捕获了一组定义好的分析步骤,并且无需在画布环境中线性排列。这样,用户就可以按照其思维过程自然流动的方式进行工作。我们的一些核心操作符包括:

  • Python 单元格传统上是数据科学家可用的唯一操作符。在浏览器访问的 Python 运行时中编写代码并 1:1 重现您的 Jupyter notebook。
  • 图表操作符创建不同的可视化,包括散点图、直方图、条形图、折线图和热力图。
  • 表达式操作符支持 Python 3 语法,接受一个数据帧并根据逻辑表达式添加一个新列。我们目前支持许多操作,包括算术、比较和位运算符,以及数学函数。
  • AutoML 操作符在比手动调整模型所需时间少得多的时间内构建更准确的预测模型。您只需从数据帧中选择目标列和特征列,以及训练和测试数据集。

鉴于 Python 拥有众多用于数据科学、统计学和机器学习的库和框架,例如 statsmodelssklearn,Python 是现代数据科学家们的轻松选择。因此,Einblick 在我们代码库的各个部分都使用了 Python。此外,我们的 Python 单元格操作符对我们的用户体验至关重要,它将 Python notebook 的工作体验与数据科学画布的工作体验连接起来。我们重视 Python 为我们的用户带来的灵活性,这不仅可以增强 Einblick 的功能,还可以使数据科学过程更加高效和易于访问。

创建可共享的用户自定义操作符

Einblick canvas with user-defined linear regression operators

在我们努力使数据科学过程更流畅、更快速的过程中,我们创建了用户操作符。通过编辑器或链接到 Git 仓库,我们的用户可以创建自己的 Einblick 操作符,从而轻松高效地重用自己的代码和流程。鉴于协作和沟通对数据科学过程的重要性,Einblick 用户创建的操作符可以轻松共享,这样,那些知道自己想做什么(例如将文本列转换为日期时间列)的人就可以做到,而无需知道实现它的 Python 语法。

例如,我们的线性回归和 k-means 聚类操作符都是通过我们的用户操作符编辑器创建的。用户操作符编辑器可以通过我们的操作符菜单访问,该菜单可以在用户设置菜单中打开和关闭。

为了庆祝数据科学的根源,并向数据科学社区的共享经验致敬,我们创建了一个操作符来可视化一个简单的线性回归模型。这个用户操作符是我们内置的线性回归操作符的扩展,它对所有人开放,将允许我们创建格式精美的线性回归图。为了说明该操作符,我们正在使用 seaborn中的 iris 数据集。

确定操作符输入

Einblick user operator interface

在用户操作符编辑器的“操作符规范”选项卡中,您可以指定以下内容:

  • 基本属性: 包括操作符在画布中的尺寸和操作符的描述,该描述将在左侧面板悬停时以及在画布中使用操作符时显示。
  • 数据帧输入: 允许您命名输入操作符的数据帧,这些数据帧在操作符编辑器中作为列表 dfs 可访问。您可以在“脚本”选项卡中索引和访问数据帧输入。
  • 属性选择输入: 指定您可以从数据帧输入中选择和不能选择的内容,例如允许的列类型或每个字段允许的选择数量。您可以使用“脚本”选项卡中的 attributes 变量来访问这些内容。
  • 自定义值: 允许您输入自定义值,例如图表的文本标题、直方图中的 bin 数量或您希望每次使用操作符时定制的任何其他动态字段。
  • 内部输入: 允许您在操作符内部输入,而不是在左侧面板上。这主要是使用画布中操作符的体验上的美学差异。

请务必在页面底部保存您的工作!

操作符包要求

在“要求”选项卡中,您可以列出操作符运行所需的包。您可以将此选项卡视为 GitHub 存储库中 requirements.txt 文件的替代品。

操作符脚本

“脚本”选项卡是您可以精确自定义操作符功能的地方。您可以将其视为一个 Python 脚本。就像任何 Python 脚本一样,您可以首先导入“要求”选项卡中列出的相关包。然后,您可以像往常一样编写代码。您还可以在编辑器中工作时,对任何上传的数据文件测试您的脚本。内置的错误消息将帮助您根据需要调试代码。

对于回归可视化操作符,我们使用 Python 的 matplotlibseaborn 来创建和标记散点图,以及一条基于两个输入(一个数据帧和我们内置的线性回归操作符的结果)说明最佳拟合线的线。

Code for regression visualization operator

由于这是一个用户定义的运算符,我们可以根据自己的特定需求定制运算符。在这种情况下,我们知道线性回归运算符的结果会返回一个表,其中包含每个预测器或 X 变量的列(在本例中为 petal_width),以及一个表示回归线 y 截距的 const 列。对于更高级的运算符,您始终可以在“运算符规范”选项卡中添加更多输入或自定义输入。

Einblick operator focus on input, output

一旦您对代码满意,可以使用顶部的“选项”汉堡菜单来发布您的操作符。一旦您点击发布,您就可以在任何 Einblick 画布中使用您的操作符。您还可以与任何利益相关者或协作者共享您的操作符,以便他们也能使用它。在 Einblick 的用户操作符文档中阅读更多关于我们用户操作符的关键字和概念。

为什么选择 Python:推动数据科学社区发展

简单的线性回归示例很好地介绍了 Einblick 中用户操作符的实现,但我们的一些用户已经创建了更高级的操作符,例如 NBA 投篮图可视化工具,灵感来自于这篇博客文章

Einblick NBA shot chart operator

我们深知创新、灵活性和效率对于数据科学和 Python 社区的重要性。我们的团队很高兴看到其他用户将如何利用我们的操作符为数据科学挑战创建创新解决方案,我们期待着在我们公司发展壮大的过程中,继续培养我们的社区。

我们将与用户一起,继续利用 Python 的强大功能,简化和增强现代数据科学。免费试用 Einblick 和我们的用户操作符,并告诉我们您的想法。我们期待您的反馈!