4、数据理解与探索:数据字典、数据分布、缺失值、异常值、数据类型识别、初步可视化分析
在安全评价风险预测模型构建过程中,数据理解与探索是承上启下的关键环节。如果说数据采集解决的是“有什么”的问题,那么数据理解与探索解决的就是“数据长什么样、质量如何、能否支撑建模”的问题。安全评价数据往往来源于事故台账、安全检查记录、设备监测系统、人员行为观察等多源异构渠道,数据形态复杂、噪声大、缺失与异常频发。若不经过系统性的理解与探索,后续的特征工程和模型训练将建立在“沙地”之上。本章围绕数据字典构建、数据分布探查、缺失值诊断、异常值识别、数据类型确认及初步可视化分析六个核心任务展开,帮助学员建立一套可复用的数据体检方法论。
上图展示了数据理解与探索的六大核心任务及其逻辑关系。数据字典是起点,为后续所有分析提供字段语义基础;数据分布、缺失值、异常值和数据类型识别构成数据质量诊断的四个维度;初步可视化分析则贯穿始终,为每个维度提供直观佐证。最终输出物是数据质量报告和建模变量清单,为特征工程和模型选择提供依据。
4.1 数据字典:字段语义的“宪法”
核心原理
数据字典是数据集的元数据描述,它定义了每个字段的业务含义、数据类型、允许取值范围、单位、编码规则及字段间的逻辑关系。在安全评价场景中,数据字典尤为重要——例如“隐患等级”字段,不同企业可能用“A/B/C”、“Ⅰ/Ⅱ/Ⅲ”或“红/橙/黄/蓝”表示,若无统一字典,模型将无法正确解析类别含义。数据字典不仅是数据理解的起点,也是跨部门协作、历史数据比对和模型可解释性的基础。
构建方法
- 字段清单梳理:逐一列出数据集中所有字段,包括字段名、字段别名、存储位置。
- 业务语义定义:明确每个字段的业务含义,例如“事故直接经济损失”应明确是否包含间接损失、统计币种和统计周期。
- 取值范围与编码规则:记录每个字段的合法值域,对类别型字段列出所有编码及对应含义。
- 单位与精度:统一计量单位(如压力单位用MPa还是kPa),明确数值精度(保留几位小数)。
- 字段关系说明:标注主外键关系、依赖字段和派生字段的计算逻辑。
| 字段名 | 业务含义 | 数据类型 | 取值范围/编码 | 单位 | 缺失说明 |
|---|---|---|---|---|---|
| hazard_level | 隐患等级 | 类别型 | 1-重大, 2-较大, 3-一般, 4-轻微 | — | 不允许缺失 |
| pressure_value | 管道压力 | 数值型 | 0~25.0 | MPa | 允许缺失,需标注原因 |
| check_date | 检查日期 | 时间型 | 2020-01-01~2025-12-31 | — | 不允许缺失 |
| worker_age | 作业人员年龄 | 数值型 | 18~65 | 岁 | 部分缺失 |
4.2 数据分布:了解变量的“脾气”
核心原理
数据分布描述的是变量取值的频率特征,包括集中趋势(均值、中位数、众数)、离散程度(标准差、四分位距、极差)和分布形态(正态、偏态、双峰、长尾)。安全评价数据中,许多变量呈现明显的偏态分布——例如“事故损失金额”往往集中在较小值区域,但存在少量极高值拉高均值;而“安全检查频次”可能呈现双峰分布(不同风险等级企业检查频次差异大)。理解分布形态直接影响后续的缺失值填充策略、异常值判定阈值和模型选择(如是否需要对数变换)。
判断方法
- 描述性统计:计算均值、中位数、标准差、最小值、最大值、四分位数、偏度、峰度。
- 分布形态检验:使用Shapiro-Wilk检验或Kolmogorov-Smirnov检验判断正态性;对于非正态数据,记录偏态方向和程度。
- 分组对比:按业务维度(如不同车间、不同作业类型)分组查看分布差异,识别潜在的分层建模需求。
- 分布与业务逻辑对照:检查分布是否符合安全领域的先验知识,例如“事故严重度”应呈现金字塔形分布(轻微多、重大少)。
4.3 缺失值诊断:不只是“填不填”的问题
核心原理
缺失值处理的前提是理解缺失机制。缺失机制分为三类:完全随机缺失(MCAR)、随机缺失(MAR)和非随机缺失(MNAR)。在安全评价数据中,MNAR较为常见——例如“事故原因分析”字段,往往在无事故记录时为空,而事故越严重,该字段缺失率越低。不同缺失机制对应不同的处理策略:MCAR可直接删除或均值填充;MAR需借助其他变量建模预测;MNAR则需谨慎处理,可能需要单独建模或引入“缺失指示变量”。
诊断流程
- 缺失比例统计:计算每个字段的缺失率,设定阈值(如5%、20%、50%)分级管理。
- 缺失模式分析:使用缺失矩阵图或热力图观察缺失是否集中在特定记录或特定字段组合。
- 缺失相关性分析:检验缺失字段与其他字段的关联性,判断是否为MAR。
- 业务原因追溯:与数据采集人员沟通,确认缺失是系统故障、人为遗漏还是业务逻辑导致。
| 缺失类型 | 典型场景 | 处理策略 | 风险提示 |
|---|---|---|---|
| MCAR | 传感器偶发故障导致数据丢失 | 删除记录或均值/中位数填充 | 删除过多会损失样本量 |
| MAR | “隐患整改期限”字段在低风险隐患中缺失 | 回归填充或多重插补 | 填充模型需验证准确性 |
| MNAR | “事故伤亡人数”在未发生事故时为空 | 引入缺失指示变量 | 直接填充会引入偏差 |
4.4 异常值识别:区分“噪声”与“信号”
核心原理
异常值是指明显偏离数据集中趋势的观测值。在安全评价中,异常值具有双重属性:一方面可能是数据录入错误或传感器故障产生的噪声;另一方面可能是真实的安全风险信号——例如某设备温度突然飙升到远超正常范围,这恰恰是事故前兆。因此,异常值识别不能机械地“发现即删除”,而应结合业务背景判断其性质。
识别方法
- 统计方法:基于均值±3倍标准差、四分位距(IQR)的1.5倍规则、Z-score等。
- 距离方法:计算样本间的欧氏距离或马氏距离,识别远离主群的样本。
- 密度方法:使用LOF(局部离群因子)检测局部密度显著低于邻域的样本。
- 业务规则法:依据安全标准设定物理极限值,如压力容器不得超过设计压力的1.05倍。
4.5 数据类型识别:建模前的“身份确认”
核心原理
数据类型决定了后续特征编码和模型选择的方向。安全评价数据常见类型包括:数值型(连续/离散)、类别型(有序/无序)、时间型、文本型。常见错误是将有序类别型(如风险等级“低/中/高”)误当作无序类别型处理,丢失了等级顺序信息;或将时间型字段当作普通数值型,忽略了周期性规律。
识别与转换流程
- 字段类型盘点:结合数据字典和实际取值,确认每个字段的原始类型。
- 类型细分:对数值型区分连续/离散;对类别型区分有序/无序;对时间型确认粒度(年/月/日/时分秒)。
- 类型转换:将字符串型日期转为datetime格式;将编码型类别转为category类型;对有序类别指定顺序。
- 类型验证:检查转换后是否有数据溢出、精度丢失或编码错位。
| 原始字段 | 原始类型 | 识别结果 | 转换方式 | 建模用途 |
|---|---|---|---|---|
| risk_level | 字符串 | 有序类别型 | 映射为1/2/3/4 | 回归/分类标签 |
| check_time | 字符串 | 时间型 | 转为datetime,提取小时/星期 | 周期性特征 |
| equip_type | 整数编码 | 无序类别型 | One-Hot编码 | 分类特征 |
| temperature | 浮点 | 连续数值型 | 保留原值,必要时标准化 | 数值特征 |
4.6 初步可视化分析:让数据“开口说话”
核心原理
可视化是将抽象的数据分布、缺失模式、异常特征转化为直观图形,帮助分析师快速发现数据中的规律和问题。在安全评价场景中,可视化不仅是探索工具,也是向非技术决策者展示数据质量的重要沟通手段。初步可视化分析应聚焦于回答三个问题:数据整体长什么样?哪些变量值得重点关注?变量之间是否存在初步关联?
常用图形与适用场景
- 直方图/密度图:查看单变量分布形态,识别偏态、双峰和异常值聚集区域。
- 箱线图:对比不同组别(如不同车间、不同年份)的分布差异,直观显示中位数、四分位距和离群点。
- 散点图:探索两个连续变量之间的关系,识别非线性模式和聚类结构。
- 缺失热力图:展示字段间缺失模式的关联性,辅助判断缺失机制。
- 时间序列折线图:观察安全指标随时间的趋势、周期性和突变点。
4.7 综合复盘:数据理解与探索的常见误区
- 误区一:数据字典流于形式——只记录字段名和类型,不记录业务含义和编码规则,导致后续分析中反复返工。
- 误区二:缺失值处理“一刀切”——不区分缺失机制,统一用均值填充,可能引入系统性偏差。
- 误区三:异常值“见一个删一个”——忽略异常值可能蕴含的风险信号,导致模型丢失关键预警能力。
- 误区四:数据类型识别不细致——将有序类别当无序处理,或将时间型字段当作普通数值,损失信息量。
- 误区五:可视化与业务脱节——只追求图形美观,不结合安全业务逻辑解读,图形沦为“装饰品”。
数据理解与探索不是一次性的“体检”,而是贯穿整个建模周期的迭代过程。随着特征工程的深入,可能发现新的数据质量问题,需要回溯到本章的各个诊断环节进行补充分析。扎实完成本章工作,将为后续的特征构造、模型训练和结果解释奠定坚实基础。