4. 数据采集与清洗
新能源车险的维修成本建模,本质上是一场“用数据还原真实赔付规律”的工程。模型再精巧,如果输入的数据口径混乱、字段缺失、异常值横行,最终定价就会失真。本节聚焦建模链条的第一环——数据采集与清洗,讲清楚四类核心数据的来源与结构,以及缺失值、异常值的处理策略。
一、四类核心数据来源与结构
新能源车险维修成本建模依赖四类数据,它们分别回答“赔了多少”“修了什么”“配件多贵”“车是什么”四个问题。
- 车险理赔数据:来自保险公司理赔系统,核心字段包括报案号、车架号、出险时间、事故类型、责任比例、定损金额、赔付金额、维修厂类型(4S店/综合修理厂)、是否全损等。它是成本建模的“结果标签”。
- 维修工单数据:来自维修厂DMS系统或保险定损平台,记录每个维修项目的工时、工序、更换件与修复件明细。它把“赔付金额”拆解为“工时费+配件费+辅料费”。
- 配件价格数据:来自主机厂配件目录、第三方配件平台或历史采购记录,包含配件编码、名称、适用车型、原厂/副厂属性、含税单价、价格有效期。新能源车的三电配件价格波动大,必须带时间戳。
- 车辆基础数据:来自承保系统或车管数据,包含车型代码、电池类型、续航里程、购车价格、使用性质(家用/营运)。它是分层建模的分组变量。
四类数据通过车架号(VIN)和报案号两个主键关联。VIN是车辆维度的锚点,报案号是案件维度的锚点,建模前必须确认关联字段的覆盖率。
二、数据采集的工程流程
采集不是“把表导出来”,而是建立可复用的数据管道。推荐流程如下:
- 接口对接:理赔系统通过API按日增量推送,维修工单通过SFTP批量文件交换,配件价格通过爬虫或供应商接口定期更新。
- 落库与分区:原始数据进入ODS层,按出险月份分区,保留全量快照,不做任何修改。
- 字段映射:建立各源系统字段到统一数据字典的映射表,例如“定损金额”在不同系统中可能叫loss_amount、assess_amt、定损总额。
- 主键校验:检查VIN长度是否为17位、报案号是否重复、时间字段是否在合理区间。
- 清洗与标准化:进入DWD层,处理缺失值、异常值、单位统一(元/万元)、车型编码统一。
# 示例:理赔数据主键与时间字段校验
import pandas as pd
df = pd.read_csv("claims_raw.csv")
# VIN校验
df["vin_valid"] = df["vin"].str.len() == 17
# 出险时间合理性
df["claim_time"] = pd.to_datetime(df["claim_time"], errors="coerce")
df["time_valid"] = df["claim_time"].between("2022-01-01", "2025-12-31")
# 输出异常占比
print(df[["vin_valid", "time_valid"]].mean())
三、缺失值与异常值处理
缺失值分三类:完全随机缺失、随机缺失、非随机缺失。新能源车险中最典型的是“非随机缺失”——例如营运车辆的三电维修记录常缺失,因为部分维修未走保险。直接删除会引入选择性偏差。
| 字段类型 | 常见缺失/异常 | 处理策略 |
|---|---|---|
| 赔付金额 | 缺失或为0 | 若案件状态为“已结案”则剔除;未结案标记为待定,不参与训练 |
| 配件单价 | 缺失、单位混用 | 按配件编码回填历史均价;单位统一为元 |
| 工时 | 异常大值(如999) | 按车型+维修项目分组,用3倍IQR截断 |
| VIN | 长度错误、重复 | 长度非17位直接剔除;重复VIN保留最新记录 |
| 出险时间 | 早于承保时间 | 标记为逻辑异常,人工复核后剔除 |
异常值不等于错误值。新能源车电池包更换费用可能高达数万元,这是真实的高赔付场景,不能简单当作离群点删除。应先区分“业务合理的高值”和“录入错误的高值”。
四、案例:一次三电维修数据的清洗复盘
某保险公司在建模时发现,电池包更换案件的平均赔付金额异常偏低。排查后发现:配件价格表中电池包单价存在“元”与“万元”混用,部分记录填写为“8”而非“80000”。清洗时通过分位数检测识别出单价低于1000元的电池包记录,结合配件编码回填修正,最终使该品类赔付均值回归合理区间。
这个案例说明:清洗不是机械地填均值,而是结合业务语义做交叉验证。建议对关键字段建立“业务规则校验清单”,例如电池包单价不得低于5000元、工时不得为负、赔付金额不得超过车辆购置价。
五、常见误区与复盘要点
- 误区一:先建模后清洗。 清洗应在建模前完成,且清洗规则要版本化,保证可复现。
- 误区二:用均值填充所有缺失。 配件价格缺失应按“配件编码+车型”分组填充,而非全局均值。
- 误区三:忽略数据时效。 新能源配件价格半年内可能变动20%以上,必须按出险时间匹配当时价格。
- 复盘要点: 每次清洗后输出数据质量报告,记录缺失率、异常率、剔除量,作为模型可信度的依据。
数据清洗的目标不是“让数据好看”,而是“让数据真实”。每一处修改都要有业务依据,每一次剔除都要有记录可查。只有干净、可追溯的数据,才能支撑起可靠的新能源车险定价模型。