一句话回答
数据准备是对原始数据进行收集、清洗、转换和校验,使其准确、一致、结构清楚,可以直接用于分析、报表或机器学习。
什么是数据准备?
数据准备是把原始数据变成一份可信、可分析的数据集:从各个来源收集,清除错误,转换成一致的结构,再校验结果。它发生在每一张图、每一份报表、每一个模型之前,决定了它们的数字对不对。
在 CRISP-DM 数据挖掘流程模型里,数据准备是介于「理解数据」和「建模」之间的独立阶段。Kandel 等人(2012)访谈企业分析人员后发现,查找、整理和摸底数据占去了他们大量时间,也是他们最头疼的事情之一。
为什么重要
会上出现的错误数字,大多不是统计方法错了,而是数据准备出了问题:测试订单算进了收入、同一个客户被算了两次、日期分属不同时区、退款被当成了销售。数据准备得不好,分析再仔细结论也是错的。
步骤和每一步的检查项
| 步骤 | 做什么 | 检查什么 |
|---|---|---|
| 1. 明确问题 | 写清指标和它的定义 | 哪些行算?按哪个日期?用哪种货币? |
| 2. 收集 | 从各个来源取数 | 行数和来源一致;日期范围完整 |
| 3. 摸底 | 逐列查看 | 缺失值、不同值的个数、最小 / 最大值、意外的类型 |
| 4. 清洗 | 修正或删除有问题的行 | 重复、测试和内部数据、无效值、异常值(处理方法) |
| 5. 转换 | 为分析重塑结构 | 单位和货币、时区、派生字段、关联、汇总 |
| 6. 校验 | 和可信的总数对比 | 收入和财务对得上(差异可解释);计数和看板一致 |
| 7. 记录 | 写下做了什么 | 筛选、排除和定义记进数据字典 |
具体的清洗手法见数据清洗方法。
整洁数据
Hadley Wickham 提出的「整洁数据」规则,描述了大多数分析需要的目标结构:
- 每个变量一列。
- 每个观测一行。
- 每类观测单位一张表。
一份「1 月、2 月、3 月」各占一列的导出表就不整洁:月份这个变量被摊到了多列。把它改成「月份、数值」两列的长表,筛选、画图、关联都会简单很多。
示例:客单价
示例数据:某月导出 10,000 笔订单,收入 642,000 美元,客单价 64.20 美元。
| 准备步骤 | 行数 | 收入 | 客单价 |
|---|---|---|---|
| 原始导出 | 10,000 | $642,000 | $64.20 |
| 删除 312 笔测试订单(测试环境优惠码,每笔 $10) | 9,688 | $638,880 | |
| 删除 145 笔重复订单(重复提交,每笔 $65) | 9,543 | $629,455 | $65.96 |
| 标记 88 笔已退款订单(保留,打标记) | 9,543 | $629,455 |
测试订单金额小、重复订单金额接近平均,所以清洗后客单价上升 1.76 美元(2.7%)。如果不去掉重复订单,收入会被多算 9,425 美元,而财务根本没有收到这笔钱。退款订单只打标记、不删除,这样分析时可以分别报告总额和净额。
为机器学习准备数据
机器学习还要多三步:标注要预测的结果;拆分训练集和测试集,而且要在任何「从数据中学习」的转换之前拆,否则测试集的信息会泄露到训练里;编码类别、缩放数值,让算法能使用。
常见错误
- 按错误的键去重,比如按邮箱而不是订单号,把真实的不同订单合并了。
- 时区混用:UTC 的服务器日志和本地时间的订单表关联,深夜的订单被挪到了第二天。
- 类型被悄悄改掉:电子表格把
00123这样的商品编码变成123,把长 ID 变成科学计数法。 - 筛选了却没记录:半年后没人知道为什么数字和看板对不上。
- 模型里的信息泄露:用只有结果发生后才知道的字段做预测,比如用「取消原因」预测流失。
常用工具
小量、一次性的工作用电子表格;数据在数据库里就用 SQL;可重复的分析用 Python(pandas)或 R;需要定时运行的转换用 dbt 之类的工具。先转换再加载还是先加载再转换,就是 ETL 与 ELT 的选择。
在 TapCub 里准备数据
成本最低的数据准备,是让问题根本进不了数据。TapCub 把几项检查前移到了采集环节:
- 校验规则:在 全端分析 › 数据管理 › 属性字典 里设置预期类型、是否必填、正则、长度、最小 / 最大值和允许值;违反时可以只警告、删除该属性或拦截整个事件。
- 属性有类型:每个属性键是字符串、数字、布尔、日期时间或列表之一,求和和筛选不会因为类型混杂而出错。
- 虚拟事件和虚拟属性:事后定义或重命名行为,并可回填最长一年的历史。
- 排除规则把内部和测试流量挡在外面;已知的爬虫和访客分开统计。
还是需要在笔记本或数据仓库里处理时,可以导出原始数据或用 SQL 查询。
资料来源
- Wickham, H. (2014). Tidy Data. Journal of Statistical Software, 59(10).
- Kandel, S. et al. (2012). Enterprise Data Analysis and Visualization: An Interview Study. IEEE Transactions on Visualization and Computer Graphics, 18(12).
- Chapman, P. 等(2000)。CRISP-DM 1.0:数据挖掘分步指南。SPSS。
这个解释清楚吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。
