数据源质量评估:可信度、新鲜度与完整性
多源实体融合,说白了就是「把不同地方来的数据拼到一起」。但有个前提——你得知道每个数据源靠不靠谱。我见过太多项目,融合算法写得漂亮,结果源头数据本身就是垃圾,最后黄金记录变成「黄金垃圾」。
这一章,我们聊聊怎么给数据源做体检。三个核心维度:可信度、新鲜度、完整性。
数据源可信度评估
可信度,就是「这个数据源说的话,我该信几分」。不同来源的数据,可信度天差地别。
举个例子。政府公开的工商注册信息,和某个论坛上用户自填的公司信息,你信哪个?显然是前者。但问题在于,很多场景下我们不得不依赖多个来源,甚至有些来源的可信度是动态变化的。
我个人习惯用一套打分卡来量化可信度:
| 评估维度 | 权重 | 评分标准(1-5分) |
|---|---|---|
| 来源权威性 | 30% | 政府/官方机构=5,行业协会=4,商业数据商=3,用户生成=2,爬虫抓取=1 |
| 历史准确率 | 25% | 基于历史抽样验证的准确率,>95%=5,80-95%=3,<80%=1 |
| 数据一致性 | 20% | 与其它高可信源交叉验证,完全一致=5,部分一致=3,经常矛盾=1 |
| 更新机制 | 15% | 实时推送=5,定期批量=3,无规律=1 |
| 数据血缘可追溯 | 10% | 完整链路可查=5,部分可查=3,完全黑盒=1 |
加权总分就是该数据源的可信度系数。这个系数会直接参与后续的实体融合决策——比如,可信度低于2.5的数据源,我通常只用来做参考,不参与主记录生成。
数据新鲜度评估
新鲜度,就是「数据有多老」。有些数据是静态的,比如出生日期,十年前和今天一样。但大部分数据是动态的——手机号、地址、职位、婚姻状态……
为什么会这样?因为现实世界在变。你想想看,一个客户的电话号码,一年不更新,可能已经换了三个运营商了。
我评估新鲜度时,会关注两个指标:
- 数据源更新频率:数据源本身多久更新一次?每天?每周?还是「随缘」?
- 字段级时效性:同一个数据源里,不同字段的新鲜度可能不同。比如「姓名」字段可能三年没变,但「最近登录时间」是实时的。
具体做法:
- 给每个数据源打一个更新频率标签(高频/中频/低频/未知)
- 给每个字段打一个最后更新时间戳
- 计算数据年龄 = 当前时间 - 最后更新时间
- 根据业务容忍度,设定新鲜度阈值。比如:手机号超过180天未更新,新鲜度标记为「低」
数据完整性评估
完整性,就是「数据缺了多少」。一个数据源,字段全不全?记录全不全?
完整性评估分两个层面:
字段级完整性
每个字段的空值率。比如「邮箱」字段,如果某个数据源有40%的记录是空的,那这个字段的完整性就很差。
记录级完整性
数据源覆盖了多少目标实体。比如,你的客户总库有100万人,某个数据源只覆盖了60万人,那它的记录完整性就是60%。
我常用的评估矩阵:
| 完整性等级 | 字段空值率 | 记录覆盖率 | 处理策略 |
|---|---|---|---|
| 高 | <5% | >90% | 直接用于融合 |
| 中 | 5-20% | 70-90% | 需要补全或降权 |
| 低 | >20% | <70% | 仅作辅助参考 |
综合评估框架
三个维度不能孤立看。一个数据源可能可信度很高,但新鲜度很差;或者完整性很好,但可信度一般。我们需要一个综合评分。
我自己的做法是:
- 可信度作为否决项:低于阈值,直接排除
- 新鲜度和完整性作为加权项:根据业务场景调整权重
- 最终输出一个数据源质量标签:优质/良好/一般/不可用
下面这张图,展示了整个评估流程:
嗯,这里要注意。综合评分不是简单的加权平均。我一般先做可信度过滤——如果可信度低于2.5分,直接打「不可用」标签,不再评估新鲜度和完整性。因为一个不可信的数据源,再新鲜再完整也没用。
对于通过可信度过滤的数据源,再根据业务场景调整新鲜度和完整性的权重。比如:
- 实时推荐场景:新鲜度权重提到50%,完整性降到20%
- 客户画像场景:完整性权重提到40%,新鲜度降到30%
- 风控场景:可信度权重提到50%,其他两个各25%
数据源质量评估,不是一次性工作。数据源会变,业务需求也会变。我建议每季度做一次全面评估,每月做一次快速巡检。只有这样,你的黄金记录才能持续保持「黄金」品质。