在 Einblick 的可视化画布中使用基于 Python 的算子重新构想数据科学
目前,数据科学家与他们的队友和相关利益相关者是孤立的。首先,数据科学家需要收集原始数据或通过 ETL 或 ELT 管道与数据工程师合作。然后开始清理数据并针对手头的特定任务或项目进行探索性数据分析的过程。这一步骤可能非常耗时,因为它本质上是迭代的。只有这样,数据科学家才能开始构建和调整机器学习模型。

Einblick:以思想的速度进行协作数据科学
在 Einblick,我们的目标之一是消除数据科学家的障碍,以便您可以减少在繁琐的设置和重复性任务上花费的时间,而将更多时间用于提取有意义的见解。为了实现我们的目标,Einblick 在协作数据科学画布中重新构想了现代数据科学工作流程,而不是线性的笔记本。在画布环境中工作具有许多优势,包括实时协作、广阔的可视化界面和渐进式计算引擎。在本文中,我们将重点介绍我们节省数据科学家时间的关键方法之一——我们的算子。我们将介绍一些核心算子,为什么 Python 是我们软件解决方案的关键部分,以及我们如何使用用户算子界面增强我们的产品。后者允许用户自定义和使用自己的算子,这些算子可以在任何 Einblick 画布中使用,并与其他 Einblick 用户共享。
数据科学画布中的算子
现在,数据科学家的主要低效率问题之一是,有些任务或代码片段会一直运行,例如数据探索或特征工程。即使这些任务可能很单调且重复,但它们对于数据科学工作流程至关重要。
我们平台的核心部分是我们的算子。Einblick 算子都捕获分析中定义的一组步骤,并且不必在画布环境中线性排列。然后,该空间允许用户根据他们的思维过程可能如何自然流动来工作。我们的一些核心算子包括
- Python 单元格传统上是数据科学家可用的唯一算子。编写代码并在浏览器访问的 Python 运行时中 1:1 重现您的 Jupyter 笔记本。
- 图表算子创建不同的可视化,包括散点图、直方图、条形图、折线图和热图
- 表达式算子支持 Python 3 语法,接收数据帧并基于逻辑表达式添加一个新列。我们目前支持许多操作,包括算术、比较和按位运算符,以及数学函数
- AutoML 算子可以在比手动调整短得多的时间内构建更准确的预测模型。您只需从数据帧中选择目标列和特征列,以及训练数据集和测试数据集。
鉴于 Python 具有许多用于数据科学、统计和机器学习的库和框架,例如 statsmodels
和 sklearn
,Python 是现代数据科学家的简单选择。因此,Einblick 在我们代码库的各个部分都使用了 Python。此外,我们的 Python 单元格算子对我们的用户体验至关重要,并将在 Python 笔记本中工作的体验与在数据科学画布中工作的体验联系起来。我们重视 Python 为用户提供的灵活性,不仅可以增强 Einblick 的功能,还可以使数据科学过程更加高效和易于访问。
创建可共享的用户定义算子

在我们努力使数据科学过程更加流畅和快速的过程中,我们创建了用户算子。通过编辑器或链接到 Git 存储库,我们的用户可以创建自己的 Einblick 算子,以便他们可以轻松高效地重用自己的代码和流程。鉴于协作和沟通对于数据科学过程的重要性,Einblick 用户创建的算子可以轻松共享,这样,任何可能知道他们想做什么的人,例如将文本列转换为日期时间列,都可以在无需了解 Python 语法的情况下完成此操作。
例如,我们的线性回归和 k 均值聚类算子都是通过我们的用户算子编辑器创建的。可以通过“用户设置”菜单切换打开和关闭“算子”菜单来访问用户算子编辑器。
为了纪念数据科学的根基,并向数据科学社区的共同经验致敬,我们创建了一个算子来可视化简单的线性回归模型。此用户算子是我们的线性回归算子的扩展,该算子是内置的,并且每个人都可以访问,这将允许我们创建一个格式良好的线性回归图。为了说明该算子,我们通过 seaborn
库使用了 iris
数据集。
确定算子输入

在用户算子编辑器的“算子规范”选项卡中,您可以指定以下内容
- 基本属性:包括画布中算子的维度和算子的描述,该描述将在左侧面板中以及使用算子时在画布中悬停显示。
- 数据帧输入:允许您命名输入到算子的数据帧,在算子编辑器中可以作为列表
dfs
访问。您可以在“脚本”选项卡中索引和访问数据帧输入。 - 属性选择输入:指定您可以和不能从数据帧输入中选择的内容,例如允许的列类型或每个字段允许的选择数量。您可以使用“脚本”选项卡中的
attributes
变量访问这些内容。 - 自定义值:允许您输入自定义值,例如图形的文本标题、直方图中的柱数或您希望每次使用算子时定制的任何其他动态字段
- 内部输入:允许您在算子内部输入,而不是在左侧面板中输入。这主要是画布中使用算子体验中的一种审美差异
请务必在页面底部保存您的工作!
算子包要求
在“要求”选项卡中,您可以列出您的算子需要安装的软件包才能运行。您可以将此选项卡视为 GitHub 存储库中 requirements.txt
文件的替代文件。
算子脚本
“脚本”选项卡是您可以自定义您希望算子执行的操作的位置。您可以将其视为 Python 脚本。就像任何 Python 脚本一样,您可以从导入“要求”选项卡中列出的相关软件包开始。然后您可以像往常一样编写代码。您还可以在编辑器中工作时在任何上传的数据文件上测试脚本。内置的错误消息将帮助您根据需要调试代码。
对于回归可视化算子,我们使用了 Python 的 matplotlib
和 seaborn
来创建和标记散点图,以及一条根据两个输入绘制的最佳拟合线:数据帧和我们的内置线性回归算子的结果。

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

一旦您对代码感到满意,就可以使用顶部的“选项”汉堡菜单来发布您的算子。一旦您点击发布,您就可以在任何 Einblick 画布中使用您的算子。您还可以与任何利益相关者或协作者共享您的算子,以便他们也可以使用它。请在 Einblick 的用户算子文档中阅读有关用户算子的关键字和概念的更多信息。
为什么选择 Python:作为数据科学社区发展
简单线性回归示例是对 Einblick 中用户算子的实现的很好的介绍,但我们的一些用户创建了更高级的算子,例如受 此博客文章启发的 NBA 投篮图可视化器。

我们知道创新、灵活性和效率对于数据科学和 Python 社区有多么重要。我们的团队很高兴看到其他用户将如何使用我们的算子来创建数据科学挑战的创新解决方案,并且我们期待随着我们公司发展而培养我们的社区。
与我们的用户一起,我们将继续利用 Python 的强大功能来简化和放大现代数据科学。免费试用 Einblick 和我们的用户算子,并告诉我们您的想法。我们期待您的反馈!