2023年9月,某零售企业做销量预测,模型误差MAPE 34%,业务方不接受。抽查500条记录发现:同一商品编码出现3种单位(件、箱、千克),退货单被记成负销量但混在正常订单里,还有17条日期是2月30日。脏数据不解决,调模型参数是白费功夫。
场景一:单位不统一。步骤:1) 导出商品维表,统计每个编码下的单位取值;2) 有多个单位的建立换算表,比如1箱等于12件;3) 统一到最小单位后重算。某食品企业按此处理,预测误差从34%降到22%。
场景二:重复记录。常见错误是按整行去重,但同一订单两条记录的金额一个含运费一个不含。做法:定义业务主键,比如订单号加商品编码,按主键聚合,金额求和、状态取最新时间戳。某跨境电商查出去重前订单量虚高8.4%。
场景三:缺失值的静默填充。价格区间在9.9元到299元,缺失价格被填0,导致均价被拉低。修正:数值型缺失先标记,再按品类中位数填充并加一个"是否缺失"指示列;类别型缺失单列"未知",不要并进"其他"。
场景四:时间戳时区混乱。某出海应用日志里UTC和本地时间混用,晚8点的峰值被拆成两个。步骤:1) 所有时间统一存UTC;2) 展示层再转本地时区;3) 抽查跨时区用户各100条核对。
场景五:枚举值漂移。某表单的"支付方式"半年内从4种变成11种,旧代码把新值全映射成"其他",占比一度到19%。做法:每周跑一次枚举分布报表,新值出现当天就要有人认领。
场景六:异常值处理过头。某门店日销额平时3000到8000元,一次团购冲到4.2万元,被3倍标准差规则直接删掉。对比:删掉后预测偏保守约6%;保留并加促销标记后误差降到1.9%。异常值要先问业务,别先删。
场景七:口径变更无记录。某指标从"下单口径"改成"支付口径",历史数据没回溯,同比直接失真。做法:指标定义表加版本号,口径变更同时跑新旧两版至少30天对比。
清单共7项:单位、重复、缺失、时区、枚举、异常值、口径。每周固定2小时逐项过,比事后救火便宜得多。