实战数据分析: 开源的自动化数据探索神器 Rath

3,777 阅读4分钟

引子

探索性数据分析(Exploratory Data Analysis,EDA)是数据分析师或数据科学家面对数据集(Dataset)时经常需要完成的任务。利用 Pandas、Seaborn 之类的 Python 工具可以很轻松的完成单变量分析(Univariate Analysis)、双变量分析(Bi-variate Analysis)、多变量分析(Multi-variate Analysis),但使用这些它们做数据探索不仅有一定技术门槛,而且还需要人工编写脚本来进行数据操作和分析。本篇文章将介绍一个非常酷的自动化数据探索开源工具 Rath,可以自动化的完成 EDA,成为数据分析界的 Autopilot 或 Copilot。

Rath

安装 Rath

由于 Rath 还在高速迭代中,文档也不是很齐全,要较快的体验只能到官网提供的演示网址

不过,如果会一些前端技术的话,还是可以本地安装,只是步骤稍微繁琐一些。

在开始之前,保证你安装了 Node.js 16 以及 Yarn。

首先,下载 Rath 2.0.0 的源代码,可以在 Bash 终端中执行如下命令。

# download source code
wget https://github.com/Kanaries/Rath/archive/refs/tags/2.0.0.zip

接下来,解压源代码。

# unzip source code
unzip 2.0.0.zip

然后,我们需要安装相关的依赖。

# install dependencies
cd Rath-2.0.0
yarn install

安装依赖需要一些时间,请耐心等待。

依赖安装完成后,我们需要构建项目。由于是 Webpack 构建的,因此速度会稍微慢一点,需要耐心等待几分钟。

# build project
yarn workspace rath-client build

之后,我们可以启动 Rath。

# start rath
yarn workspace rath-client start

启动过程中,终端会显示 Starting the development server...,并弹出默认浏览器自动导航到 http://localhost:3000,这表示正在启动开发服务。

等待一段时间后,终端会出现以下信息。

webpack compiled with 3 errors and 54 warnings
No issues found.

表示,已经编译完成,Rath 服务成功启动!

你应该可以在 http://localhost:3000 上看到如下页面。

Rath Initial

导入数据集

现在,我们可以在 Rath 上导入数据集了。

点击 Create DataSource,可以看到如下选项。

Data Sources

当然,可以点击 Demo 来选择演示数据,里面贴心的包含很多经典的数据集,例如 Bike Sharing、Titanic、Car Sales 等。

在本次体验中,我们将使用 Kaggle 上的 Diamonds (钻石)数据集,总共有 54k 行数据,字段数不多且大多为数值类型(Numeric)。

点击 File,将下载好的 Diamonds 数据集导入进来。

Load Data Preview

点击 Load Data 加载数据,可以看到如下数据剖析(Data Profiling)界面。

Data Profiling

可以看到,Rath 已经贴心的将数值类型的字段做了直方图,也就是探索性数据分析 EDA 中首先要做的单变量分析。

我们还可以点击 Meta 来查看各个字段的详细情况,这里可以定义是否希望作为维度或指标来分析,以及是数值型变量还是离散型变量。

Data Profiling - Meta

如果我们点击 Statistics,我们可以查看更多详细情况,例如离散变量的唯一值数量,均值、中位数、标准差等统计数据。

image-20230522154846993

另外,我们还可以通过直方图看到数据的分布,例如 Diamonds 数据集中的价格明显是一个长尾分布,而 x 变量是个双峰分布。

自动化数据探索

Rath 的特点是自动化数据探索,我们来看看这个神奇的功能是如何的。

点击 Data Autopilot,然后再点击 Re-Run Task,可以得到下面自动生成的直方图(Histogram)、散点图(Scatter Plot)以及箱线图(Box Plot)。

Data Autopilot

从 Rath 自动生成的多变量分析图表中,我们可以找到很多有价值的规律。例如,从上图中可以看出纯净度(Clarity)高的钻石的 x 相对较小;而随着克拉数(Caret)增大,价格也成对数曲线上升。

拖拽分析

Rath 还支持 Superset 式的拖拽分析,这跟之前《实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台》中介绍过的 Superset 类似。通过简单的拖拽,就可以生成对应的图表。

Exploration

不过 Rath 的拖拽分析还相当初级,我相信这只是其中一个附加功能。

总结

本篇文章介绍了自动化数据探索开源工具 Rath,包括如何安装以及一些基本使用。Rath 的自动化数据探索功能还是非常强大的,可以在页面上鼠标点击几下就可以完成数据探索。要知道,这在以前是需要人工一个图一个图的检查和分析的,非常耗时。而 Rath 恰巧解决了这个痛点。另外,笔者检查了一下环境,发现 Rath 保存数据是通过浏览器的 IndexDB 来存储的,因此不用担心数据泄漏。总的来说,Rath 还在高速迭代中,很多功能很文档还不是很完善,不过未来可期!笔者将持续关注。

社区

如果您对笔者的文章感兴趣,可以加笔者微信 tikazyq1 并注明 "码之道",笔者会将你拉入 "码之道" 交流群。