3. 特征缺失的定义与分类:完全缺失、部分缺失、逻辑缺失、结构性缺失
在金融风控数据质量巡检中,特征缺失并非简单的“空值”问题。不同缺失类型对模型训练、特征工程及风险决策的影响差异显著。本章明确定义四种核心缺失类型,并给出金融场景下的典型判别标准。
3.1 缺失类型总览
| 缺失类型 | 定义 | 金融场景典型示例 | 巡检关注点 |
|---|---|---|---|
| 完全缺失 | 某特征在全部样本中均无有效值 | “征信查询次数”字段整列为空 | 数据源接入异常、ETL 配置错误 |
| 部分缺失 | 某特征在部分样本中存在有效值,部分为空 | “公积金缴纳基数”仅 60% 客户有值 | 缺失率波动、缺失模式是否随机 |
| 逻辑缺失 | 因业务规则约束,特定条件下特征不应有值 | “配偶收入”对未婚客户为空 | 业务规则是否被正确编码 |
| 结构性缺失 | 因数据采集系统或流程设计导致整块数据不可得 | 新接入渠道无“历史逾期天数”字段 | 数据源版本差异、系统升级影响 |
巡检提示: 在风控特征巡检中,逻辑缺失不应被当作数据质量问题处理,而应保留为业务规则特征;结构性缺失往往需要触发特征废弃或数据源补录流程。
3.2 完全缺失(Complete Missing)
完全缺失指某个特征在数据集中所有记录均为空值或无效值。在金融风控中,这通常意味着数据采集链路断裂或上游系统未产出该字段。
- 巡检判定标准: 缺失率 = 100%
- 常见根因: 接口字段映射错误、数据库列被删除、数据源切换后未同步
- 处理策略: 立即触发数据源告警,该特征在模型训练中应被排除
3.3 部分缺失(Partial Missing)
部分缺失是最常见的缺失形态,特征在部分样本中有值,部分为空。金融场景中需区分随机缺失与非随机缺失。
| 子类型 | 定义 | 金融案例 | 对模型影响 |
|---|---|---|---|
| 随机缺失(MAR) | 缺失概率与其他观测变量相关 | 高收入客户更可能填写“年收入”字段 | 可引入偏差,需用插补或加权 |
| 完全随机缺失(MCAR) | 缺失概率与任何变量无关 | 系统随机丢包导致部分记录缺失 | 影响较小,可直接删除或均值填充 |
| 非随机缺失(MNAR) | 缺失概率与缺失值本身相关 | 违约客户故意不填写“联系方式” | 需构建缺失指示变量,谨慎处理 |
风控警示: 部分缺失中 MNAR 类型在信贷场景中常与“拒绝推断”问题交织,直接删除或简单填充可能导致模型低估违约风险。
3.4 逻辑缺失(Logical Missing)
逻辑缺失是指根据业务规则,特定样本不应拥有该特征的值。这类缺失是合法且预期的,不应被当作数据质量问题。
- 判定原则: 存在明确的业务条件表达式
- 金融场景示例:
- “授信额度”对未通过审批的客户为空
- “抵押物估值”对信用贷款客户为空
- “逾期天数”对从未逾期的账户为空
- 巡检要点: 验证逻辑缺失条件是否与业务规则一致,避免误报
# 逻辑缺失判定伪代码示例
def is_logical_missing(feature_value, business_conditions):
"""
判断某个空值是否为逻辑缺失
:param feature_value: 特征值(可能为 None)
:param business_conditions: 业务条件字典
:return: (is_logical, reason)
"""
if feature_value is not None:
return False, "有值,非缺失"
# 检查业务条件
if business_conditions.get('loan_status') == 'rejected' and feature_name == 'credit_limit':
return True, "未通过审批,授信额度应为空"
if business_conditions.get('marital_status') == 'unmarried' and feature_name == 'spouse_income':
return True, "未婚客户,配偶收入应为空"
return False, "非逻辑缺失,需进一步排查"
3.5 结构性缺失(Structural Missing)
结构性缺失源于数据采集系统的架构差异或版本变更,导致整块数据在特定数据源或时间段内完全不可用。
典型场景: 某金融机构在 2024 年 Q1 升级了核心信贷系统,新系统不再采集“社保缴纳年限”字段,导致 Q1 之后所有新客户该特征均为空。这不是数据质量问题,而是系统结构变更导致的缺失。
- 巡检特征: 缺失模式与时间、数据源、渠道强相关
- 处理策略:
- 标记该特征在特定数据源/时间段内为“不可用”
- 在模型训练中按数据源分群或使用时间窗口过滤
- 触发数据治理流程,评估是否补录或废弃该特征
3.6 缺失类型判别流程
以下 SVG 流程图展示了金融风控巡检中特征缺失类型的判别路径:
3.7 四种缺失类型对比总结
| 对比维度 | 完全缺失 | 部分缺失 | 逻辑缺失 | 结构性缺失 |
|---|---|---|---|---|
| 缺失率 | 100% | 0% < x < 100% | 条件性 100% | 按数据源/时间 100% |
| 是否数据质量问题 | 是 | 视情况 | 否(合法缺失) | 是(需治理) |
| 模型处理方式 | 排除特征 | 插补/指示变量 | 保留为业务规则 | 分群建模或废弃 |
| 巡检优先级 | 最高(立即告警) | 高(持续监控) | 低(验证规则) | 中(触发治理流程) |
巡检最佳实践: 在金融风控特征巡检中,建议为每个特征建立缺失类型标签,并在巡检报告中区分“数据质量缺失”与“业务规则缺失”,避免误报和无效告警。