第6章 数据工程 / 6.1
6.1 数据采集和预处理
一句话讲明白
数据采集是"把数据弄进来",预处理是"把弄进来的脏数据洗干净"——洗完的数据要达到准确、完整、一致、唯一、适时、有效。
生活类比
做一锅汤:
- 采集 = 买菜。可从菜市场(传感器)、超市小票台账(系统日志)、网上攻略(网络爬虫)、或直接找供应商配送(数据服务商)。
- 预处理 = 择菜洗菜。菜叶烂了要摘掉(缺失/异常)、土豆和胡萝卜混在一起要分开(不一致)、同一棵菜被放进篮子两次要挑出来(重复)、有的用斤有的用克要统一(格式不符)。
不洗直接下锅,再好的厨师也做不出好汤——这就是"垃圾进、垃圾出"。
正经定义
数据采集又称数据收集,是指根据需求收集相关数据的过程。数据预处理是一个去除数据中的重复记录、发现并纠正数据错误,并将数据转换成符合标准的过程,从而使数据实现准确性、完整性、一致性、唯一性、适时性、有效性。
拆解与流程
一、采集的三类数据
| 类型 | 定义 | 例子 |
|---|---|---|
| 结构化数据 | 以关系型数据库管理的数据 | 二维表 |
| 半结构化数据 | 非关系模型的、有基本固定结构模式的数据 | 日志文件、XML 文档、E-mail |
| 非结构化数据 | 没有固定模式的数据 | 办公文档、文本、图片、HTML、各类报表、图像、音频/视频 |
二、四种采集方法
| 方法 | 怎么做 | 考点 |
|---|---|---|
| 传感器采集 | 通过传感器感知信息并按规律变换成电信号输出 | 电力感应、加速度、光敏、热敏、声敏、气敏、流体、放射线敏感、味敏传感器 |
| 系统日志采集 | 读取收集日志文件变化;日志一般数据量非常庞大的流式数据 | 工具:Logstash、Filebeat、Flume、Fluentd、Logagent、rsyslog、syslog-ng |
| 网络采集 | 通过公开采集接口(API)或网络爬虫获取 | 爬虫分 4 类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫 |
| 其他数据采集 | 与数据服务商合作等 | — |
三、数据预处理流程三步走
flowchart LR
A[数据分析<br/>发现规则:字段域/业务规则<br/>定义清洗规则与算法] --> B[数据检测<br/>按规则检测是否正确<br/>是否重复] --> C[数据修正<br/>手工清理/自动清理] --> D[满足质量要求的数据]
四、五类脏数据怎么洗(高频)
| 问题 | 典型表现 | 处理方法 |
|---|---|---|
| 数据缺失 | 某些字段为空 | 删除缺失值(样本多且缺失占比小时最有效)、均值填补法(按相关系数分组取均值)、热卡填补法(找最相似对象的值填充);还有最近距离决定填补、回归填补、多重填补、K-最近邻、有序最近邻、基于贝叶斯的方法 |
| 数据异常 | 超出取值范围、离群点、噪声 | 分箱法(考察"近邻"做局部光滑,宽度越大效果越好)、回归法(用函数拟合光滑数据,线性回归/多元线性回归) |
| 数据不一致 | 年龄与生日不符、类型不一致 | 人工修改,或借助工具找出违反限制的数据;多数情况需要数据变换,可用数据迁移工具、ETL 工具 |
| 数据重复 | 本身存在或清洗后产生的重复值 | 一般最后进行;可用 Excel、VBA、Python 处理(重复值影响模型训练质量、浪费计算与存储) |
| 数据格式不符 | 时间/日期/数值显示不一致、有空格或引号 | 统一清洗成同一类型的文件和统一格式(如 TXT、CSV、Excel、HTML、PDF 统一为 Excel) |
考试怎么考
- 题型:选择题。
- 教材原题:哪项不属于需要进行数据预处理的促成因素 → 数据安全(选 C;促成因素是数据缺失、数据异常、数据不一致、数据重复、数据格式不符)。
- 常见问法:
- "下列属于半结构化数据的是?" → 日志文件、XML 文档、E-mail(图片、音视频是非结构化)
- "系统日志采集工具是?" → Logstash/Flume/Filebeat/Fluentd
- "适合处理离群点的方法是?" → 分箱法、回归法
- "预处理流程的正确顺序是?" → 数据分析 → 数据检测 → 数据修正
- 陷阱词:把"删除缺失值"说成任何时候都最有效(错,只有样本很多且缺失占比小时才合适);把"去除重复值"说成第一步(一般最后做)。
易混辨析
| 对比 | 半结构化 | 非结构化 |
|---|---|---|
| 结构 | 有基本固定结构模式 | 没有固定模式 |
| 例子 | 日志、XML、E-mail | 图片、音视频、HTML、办公文档 |
| 对比 | 均值填补法 | 热卡填补法 |
|---|---|---|
| 依据 | 按属性相关系数最大的属性分组,取组均值 | 在库中找最相似的对象,用它的值填充 |
一秒记忆
"采 集 四 招:传 感、日 志、爬 虫、服 务 商;洗 菜 三 步:分 析 检 测 再 修 正;脏 数 据 五 样:缺、异、乱、重、格式怪。"