平常学东西习惯留档,存货发一发,主要依据dataiku academy官方教程总结,供参考学习使用。


Dataiku介绍:

Dataiku DSS(Data Science Studio)是一款协作式的数据科学平台,主要面向的用户是数据分析师、数据科学家、数据工程师和业务分析师,解决的主要问题是让上面这些角色更快速、有效的探索数据、构建、交付数据产品。说到底,就是通过工具来提高数据相关从业者的生产力,让人和工具配合起来更快地挖掘数据价值。其实类似的平台和工具很多,不管是Excel、Spss、jupyter、谷歌、微软azure和阿里云里中的部分工具都是为了解决类似的问题,只不过不同阶段数据量、人员素质等外界环境和需求的不同,各阶段面向不同用户各类产品的特性有所区别。

一句话总结:利用云平台更好链接具有coding与非coding经验的人,通过步骤可视化数据处理流程。


一、Data Preparation Quick Start数据准备快速入门

本教程面向初次使用 Dataiku 的用户,将指导您开始使用 Dataiku 进行数据准备。在本项目中,你将准备一个带有标签的招聘信息数据集,为后续通过机器学习任务区分虚假招聘和真实招聘做准备。

建议用时:30min

Get started

第一步是进入你的 Dataiku Design 节点首页Dataiku Cloud - Launchpad。

https://launchpad-dku.app.dataiku.io/

在Overview面板中,实例启动后,单击Design节点tile中的Open Instance。

进入Design节点主页后,就可以创建教程项目了。

Create the project

在Dataiku Design主页上,点击+ New Project。

选择学习项目。

搜索并选择“Data Preparation Quick Start.”。

如果需要,更改要安装项目的文件夹,然后单击Create。

从项目主页,单击Go to Flow(或键入g + f)。

图片

Understand the project

您创建的项目包括真实和虚假招聘信息的标记数据集。

在实际准备数据之前,先简单地探索一下。

第一步:打开数据集

双击job_posts数据集打开它。

此时你应该进入了数据集的 Explore(探索) 标签页,能看到类似 Excel 的表格。

图片

第二步:计算总行数 (Compute Row Count)

注意,你现在看到的可能只是前 10,000 行(采样),不代表全部。

在表格上方,找到一个像 计数器 的小图标,点击 Compute row count,以确定整个数据集的行数。

第三步:检查采样设置 (Sampling)

单击Sample按钮打开Sample设置面板。

点击 Sampling method 下拉菜单,看看目前的设置(默认通常是 First records)。

这一步不需要修改,只是让你熟悉一下在这里可以调整预览数据的范围。

看完后再次点击 Sample 按钮收起面板。

图片

第四步:分析列分布

这是理解数据质量(是否有缺失值、异常值)最快的方法。

单击第一列job_id的标题,在弹出的菜单中选择 Analyze。

切换:在弹出的 Analyze 窗口中,你可以点击 左右箭头 () 来依次查看每一列的统计图表。

重点观察 fraudulent 列:

这是你的目标变量(Target Variable),即我们要预测的“是否为虚假职位”。

你应该能看到 0(真实职位)约占 95%,1(虚假职位)约占 5%。

图片

如果你想确认刚才看到的 5% 比例是否在整个数据集中都一致:

操作: 在 Analyze 窗口的右上角,将下拉菜单从 Sample 切换到 Whole data。

执行: 点击 Save and Compute。系统会跑一遍全量计算,给你最精确的统计分布。

Prepare data

第一步:创建 Prepare Recipe

在 job_postings 数据集页面,点击右侧面板的 Actions标签页。

在 Visual recipes 菜单下,选择 Prepare。

点击 Create Recipe。不用改名字,直接用默认的 job_postings_prepared 即可。

图片

第二步:拆分地理位置 (Split Column)

我们要把 location 这一列(通常是“国家, 州, 城市”格式)拆开。

点击左侧脚本区的 + Add a New Step。

在搜索框输入并选择 Split column。

配置参数:

Column: 输入 location。

Delimiter: 输入英文逗号 ,。

勾选 Truncate,并将 Max columns to keep 设置为 3。

你会发现右侧预览中多了三列蓝色的新列(location_0 等)。

图片

第三步:直接在表头重命名 (Rename)

在表格预览中,点击 location_0 的列名标题。

选择 Rename,输入 country 并回车。

对 location_1 和 location_2 重复此操作,分别命名为 state 和 city。

注意:你会发现这三次重命名在左侧脚本里被合并成了一个步骤。

图片

第四步:批量简化文本 (Columns View)

当需要对多列执行相同操作时,切换视图更有效率。

在表格上方,将视图从 Table 切换到 Columns。

勾选以下四列:company_profile, description, requirements, benefits。

点击上方的 Actions 下拉菜单,选择 Simplify text。

这个操作会自动去除多余空格、转换大小写等,让文本更规整。

图片

第五步:使用公式计算长度 (Formula)

Dataiku 有一套类似 Excel 但更强大的公式系统。

切回 Table 视图。

点击 + Add a New Step,搜索并选择 Formula。

配置参数:

Output column: 输入 len_company_profile。

Expression: 输入 length(company_profile)。点击 Apply。

复制步骤:

点击该步骤右侧的 三个点 (),选择 Duplicate step。

将新步骤的输出列名改为 len_description。

将公式改为 length(description)。

图片

第六步:运行并检查结果

点击左下角的红色 Run 按钮(或使用快捷键 @ + r + u + n)。

等待任务完成后,点击 Explore dataset job_postings_prepared。

检查新生成的 country, len_description 等列是否符合预期。

最后,点击快捷键 g + f 回到 Flow 页面。

你会发现 Flow 页面现在多了一个橘色的圆形图标(Prepare Recipe)和一个新的蓝色方形图标(结果数据集)。

这代表了数据从“原始”到“清洗后”的流向。

Import data

下载并上传文件

准备文件:首先确保你已经下载了教程提供的 earnings_by_education.csv。

开始导入:回到 Flow 界面,点击左上角蓝色的 + ADD ITEM 按钮。

选择上传:在弹出的菜单中选择 Upload。

选择文件:点击 Select Files,从你的电脑中选中刚才下载的那个 CSV 文件。

图片

配置格式与推断 Schema (关键步骤)

在点击创建之前,我们需要检查 Dataiku 是否正确读懂了表头和数据类型。

进入配置: 在上传界面,点击 Configure Format 按钮。

切换到 Schema: 在新页面的顶部标签栏中,点击 Schema 选项卡。

自动推断: 点击 Infer Types from Data。

观察变化: 重点看 median_weekly_earnings_usd 这一列。点击 Confirm 后,你会发现它的类型从 string(字符串/文本)变成了 int(整数)。这说明 Dataiku 成功识别了这一列是数字,以后可以用来做加减乘除计算。

图片

完成创建

点击页面右上角的绿色 Create 按钮。

检查数据: 现在你就在新数据集的预览界面了。确认数据没问题后,按下快捷键 g + f 回到 Flow。

图片

图标含义: 留意 Flow 里的蓝色方块图标。你会发现 job_postings 的图标可能和新上传的 earnings_by_education 不太一样,这代表了它们背后存储的物理方式(比如一个是上传的文件,一个是系统存储)。

Schema(模式):指的就是“这一列叫什么名字”以及“它是数字还是文本”。

JOIN data

我们的目标是:根据“学历(education level)”这个共同点,把每个职位对应的“平均周薪(median weekly earnings)”关联进去。

第一步:创建 Join Recipe

1.在 Flow 界面,点击选中 job_postings_prepared(它将作为“左表”)。

2.点击右侧面板的 Actions (),选择 Join。

3.在弹出的对话框左侧,点击 No dataset selected,然后选择你刚刚上传的 earnings_by_education(它将作为“右表”)。

4.点击 Create Recipe。

图片

第二步:配置关联条件 (Join Step)

1.选择关联类型: 默认应该是 Left join。保持不变。

Left join 意味着我们会保留所有职位数据。即使某个职位的学历在薪资表里找不到,职位数据也不会消失。

2.添加关联键 (Join Key): 点击中间的 Add a Condition。

3.设置匹配列:

左侧(job_postings_prepared)选择 required_education。

右侧(earnings_by_education)选择 education_level。

点击 OK。

图片

第三步:处理未匹配的行 (Unmatched Rows)

这是一个非常实用的调试技巧,可以帮你发现数据里的“脏数据”或拼写不一致。

1.在 Join 条件下方,点击下拉菜单,选择 Send unmatched rows to other output dataset(s)。

2.点击 + Add Dataset,起名为 unmatched。

3.点击 Use Dataset。

图片

第四步:选择输出列 (Selected Columns)

1.为了让结果表更简洁,我们不需要重复的列。

2.在左侧导航栏,切换到 Selected columns 步骤。

3.在 earnings_by_education 下方,将下拉菜单改为 Manually select columns。

4.取消勾选 education_level(因为左表的 required_education 已经有相同信息了)。

5.点击顶部的蓝色 SAVE 按钮。

图片

第五步:在 Flow 中直接构建 (Build)

不需要点 Recipe 里的 Run,也可以直接在流程图中操作。

1.按 g + f 回到 Flow。

2.点击那个空心的(还没跑出来的)job_postings_prepared_joined 数据集图标。

3.在右侧 Actions () 面板中,点击 Build。

4.保持默认的 Build Only This,点击 Build Dataset。

图片

第六步:检查“没对上”的数据

任务完成后,你会发现 Flow 里多了一个名为 unmatched 的数据集。

1.双击打开 unmatched。

2.你会看到有一行“Some high school coursework”。

原因: 这是因为薪资表里的这个写法,在职位表里找不到完全一致的字符串。

看完后按 g + f 返回 Flow。

图片

小贴士:你在点击齿轮图标时看到的 Recipe Engine,代表了 Dataiku 是如何处理数据的。

图片

Schema(模式):指的就是“这一列叫什么名字”以及“它是数字还是文本”。

Write code

我们要做的任务是:把 salary_range(比如 "50000-70000" 这种字符串)转化成一个可以计算的数字列 min_salary。

第一步:创建 Code Notebook (实验区)

1.在 Flow 中,点击选中 job_postings_prepared 数据集。

2.点击右侧面板的 Lab () 标签页。

3.在 Code Notebooks 下方,点击 New。

4.选择 Python,并点击 Create。

5.当内核(Kernel)准备好后,运行前几个初始单元格(点击单元格左侧的播放按钮)。

第二步:编写 Python 代码

教程提供了一段代码,用来解析薪资范围并提取最小值。

粘贴代码: 将最后一个单元格的内容替换为以下代码:

Python# 定义提取最低薪资的函数def extract_min_salary(salary_range):    if pd.isna(salary_range):  # 保持缺失值为缺失        return None    try:        # 按照 '-' 分割字符串并取第一部分        min_salary = int(salary_range.split('-')[0])         return min_salary    except:        return None  # 处理无效值

运行: 运行该单元格,观察数据框 df 是否多出了 min_salary 这一列。

第三步:将 Notebook 转换为 Recipe (进入生产线)

实验室的成果需要搬到“生产线”(Flow)上才能被后续步骤使用。

1.点击页面上方的 + Create Recipe。

2.点击 OK(默认选择 Python recipe)。

3.配置输出: 在 Outputs 下点击 + Add,输入新数据集的名字:job_postings_python。

4.点击 Create Dataset,然后点击 Create Recipe。

5.关键修改: 进入代码编辑界面后,将最后一行代码修改为: job_postings_python.write_with_schema(df)

6.点击左下角的 Run。

第四步:调整流程图 (更新流水线)

现在你有了更高级的 job_postings_python 数据(带薪资数字),我们需要让后面的 Join Recipe 改用这个新表作为输入。

1.按下 g + f 回到 Flow。双击你之前建立的 Join recipe ()。

2.在 Join 步骤页,找到左表的 job_postings_prepared,点击它旁边的 Replace dataset () 图标。

3.选择你刚刚通过 Python 生成的 job_postings_python。

4.点击 Replace Dataset,然后点击 Run。


后面的write code步骤可做可不做,看个人情况。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐