老周是“周记私房菜”的老板,餐厅生意火爆,靠的是一条铁律:食材不过验收台,绝不下锅。每天清晨,供应商送来的每一箱食材,都要经历六道关卡:这食材是不是真材实料?数量够不够?多个供应商的标准统不统一?是不是足够新鲜?有没有重复送货?大小规格合不合格? 做AI模型,本质上和开餐厅一模一样。模型再聪明,喂进去的数据不行,做出来的“菜”也一样糟糕。业界把这套“食材验收体系”叫做数据质量评估,它也有六道关卡——准确性、完整性、一致性、时效性、唯一性、有效性。这六大维度,就是判断数据好坏的一把标准尺子。 在这篇文章里,我们跟着老周的后厨走一圈,把这六个维度逐个看明白:它们各自衡量什么、怎么算分、怎么用。学完之后,你就能像老周一眼看出不新鲜的鱼一样,一眼找出数据集里的问题。

岗位关联

掌握数据质量六维评估框架,你就能在训练模型前精准识别脏数据、科学判断数据资产的价值,这是AI从业者最基础的硬技能之一。

目录
  1. 可视化演示
  2. 数据质量总览
  3. 准确性维度
  4. 完整性维度
  5. 一致性维度
  6. 时效性维度
  7. 唯一性维度
  8. 有效性维度
  9. 权衡与应用
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

动态演示数据质量维度的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

数据质量维度:数据质量 数据质量维度体系的整体框架与核 准确性与完整性:数据内容质量的 核心机制可视化 数据质量维度整体架构与关键组件

数据质量总览

老周在厨房门口挂了一块白板,上面写着“六道关卡,缺一不可”。每天验收食材,他就在每道关卡后面打个勾。这块白板就是他的“验收总表”。对AI工程师来说,这张“验收总表”就是数据质量评估框架。近年来,「数据为中心AI」逐渐成为主流观点——与其无休止地调整模型结构,不如先把数据质量搞扎实,训练数据干净了,模型效果自然水涨船高。

数据质量评估框架将海量的问题数据归纳为六种可量化的“疾病”:数值错了是准确性问题,字段空了是完整性问题,前后矛盾是一致性问题,过期陈旧是时效性问题,重复冗余是唯一性问题,违反规定是有效性问题。每个维度都有对应的量化指标,就像每道关卡都有明确的验收标准。把这六个维度放在一起,就得到一张完整的数据体检表。

老周在白板最后画一条“平均线”,总分及格才让当天的菜上桌。AI项目也一样,综合质量分是判断“这批数据能不能用”的第一道门槛。有了框架,接下来就把六个维度一个个掰开揉碎看清楚。

Q=16(Dacc+Dcom+Dcon+Dtim+Duni+Dval)Q = \frac{1}{6}\left(D_{acc} + D_{com} + D_{con} + D_{tim} + D_{uni} + D_{val}\right)
这个公式把六个维度的得分取平均,得到一个0到100之间的总分,帮助你快速判断数据集的整体健康状况。六项都很好的数据,综合分自然高。
  1. D_acc(准确性维度得分)衡量数据值与真实情况吻合程度的分数,越高表示数据越真实可信。
    DaccD_{acc}
  2. D_com(完整性维度得分)衡量数据字段齐全、没有空缺的分数,越高表示数据越完整无缺。
    DcomD_{com}
  3. D_con(一致性维度得分)衡量相同信息在不同地方保持统一的分数,越高表示数据口径越一致。
    DconD_{con}
  4. D_tim(时效性维度得分)衡量数据更新及时、没有过期的分数,越高表示数据越新鲜可用。
    DtimD_{tim}
  5. D_uni(唯一性维度得分)衡量数据记录不存在冗余重复的分数,越高表示重复记录越少。
    DuniD_{uni}
  6. D_val(有效性维度得分)衡量数据内容符合业务规则约束的分数,越高表示数据越规范合规。
    DvalD_{val}
  7. 整体平均把六个维度的得分全部累加,然后除以维度数量6,得到数据质量总分。
    16∑i=16Di\frac{1}{6}\sum_{i=1}^{6}D_i

准确性维度

老周最怕的供应商,就是用巴沙鱼冒充龙利鱼的那家。食材本身是鱼肉,但名不副实,做出来的菜味道全不对。数据准确性就是“名与实”的关系:数据值必须真实反映客观世界的事实,不能含含糊糊、张冠李戴。

在数据集中,准确性问题的典型表现有:用户年龄写成负数、商品价格录成天价、传感器数值漂移。这些错误值会被模型当作“真理”学习,导致模型输出系统性偏差。比如训练一个房价预测模型,如果部分面积数据刻意夸大,模型学到的规律就会歪掉。

衡量准确性最常用的方法是抽样核查:从数据集中抽取一批记录,与可信来源(人工复核结果、权威业务系统)进行比对,计算正确记录所占的比例。也可以利用字段间的逻辑关系做自动校验,比如“出生日期”和“年龄”应相互吻合。

老周每批鱼都要切开一条验货。数据团队也要定期“切鱼”——抽样核查数据,把冒牌数据挡在模型训练之外。准确性是数据质量的底线,如果数据是假的,后面所有分析都建立在谎言上。

Accuracy=NcorrectNtotal×100%Accuracy = \frac{N_{correct}}{N_{total}} \times 100\%
准确率等于抽查中与真实值一致的记录数,除以抽查总记录数。抽十份食材有九份是真货,准确率就是90%。
  1. N_correct(正确记录数)抽查记录中与标准答案完全一致的条数,用来代表“真货”的规模。
    NcorrectN_{correct}
  2. N_total(记录总数)纳入本次抽查的全部记录条数,代表这批食材被检查的总量。
    NtotalN_{total}
  3. 相除求正确比例把正确记录数与抽查总数相除,得到一个0到1之间的小数。
    NcorrectNtotal\frac{N_{correct}}{N_{total}}
  4. 转换为百分比将小数乘以100%,换算成方便比较的百分点。
    ×100%\times 100\%

完整性维度

“今天少了两斤虾、缺了一捆葱!”老周对着进货单皱眉。食材缺了可以再补,但数据少了,模型可能直接“营养不良”,连基本特征都没有,再强的算法也学不出规律。完整性衡量的就是“该有的数据到底有没有”。

完整性问题的常见场景:用户注册表缺了手机号、传感器某段时间没回传数据、问卷调查有大量跳答。缺失的原因可能是系统故障、人为漏录,或者采集流程本身就没有强制要求。无论哪种原因,缺失数据都会让模型训练时“缺料”,推理时只好靠猜测填补。

完整性的计算方式是统计所有“应该填写”的字段中实际非空的比例。注意,分母不是简单的总行数,而是计划中应采集的字段总数。如果一张订单表有100行,每行必填5个字段,那么应有字段数是500,而不是100。

老周的进货单上所有打星号的食材都必须到齐,他才放心开火。数据团队用完整率盯着必填字段,缺失的字段要么补采、要么填充,绝不带着“空洞”训练模型。毕竟一道菜少了两味料,再好的师傅也难做回原味。

Completeness=Nnon-nullNexpected×100%Completeness = \frac{N_{non\text{-}null}}{N_{expected}} \times 100\%
完整率等于实际有值的字段数,除以按规则应有值的字段数。一百个必填项中九十个填了,完整率就是90%。
  1. N_expected(应有字段数)业务规则要求必须非空的字段总数,代表这桌宴席应该上的菜量。
    NexpectedN_{expected}
  2. N_non-null(非空字段数)表中实际有取值的字段总数,代表后厨真正端上桌的菜量。
    Nnon-nullN_{non\text{-}null}
  3. 相除求齐全比例非空字段数与应有字段数相除,得到数据齐全的比例。
    Nnon-nullNexpected\frac{N_{non\text{-}null}}{N_{expected}}
  4. 转换为百分比乘以100%后得到完整率,作为完整性维度的量化得分。
    ×100%\times 100\%

一致性维度

有一年老周发现,同样一道宫保鸡丁,总店是甜口,分店却是咸口,客人的投诉接连不断。问题不在食材,而在标准不统一。数据一致性就是“一个事实,到处统一”——同一个事物,在各个系统里必须描述一致。

一致性问题的典型场景:同一客户在CRM系统里地址是“北京市海淀区”,在财务系统里却写成“北京海淀”;同一个商品,库存表显示100件,订单表显示80件。这种“数据打架”现象会让模型在做特征融合时无所适从,就像给AI配了两个口径不同的“顾问”,越听越糊涂。

一致性检查通常按“实体标识”分组,对比同一标识下的字段值是否冲突。例如以用户ID为组,检查姓名、城市等字段在各个记录中是否一致;以订单号为组,核对金额、状态等字段。检查结果用一致记录的比例来量化,并且可以借助数据字典和格式规范从源头杜绝不一致。

老周把“宫保鸡丁必须一勺糖”写进标准菜谱,分店立刻停止争吵。数据团队则靠数据字典和格式规范,让同一个事实在所有系统里说同一种“方言”。一致性做得好,模型在融合多源特征时才不会精神分裂。

Consistency=NconsistentNtotal×100%Consistency = \frac{N_{consistent}}{N_{total}} \times 100\%
一致率等于通过一致性检查的记录数,除以参与检查的总记录数。十份订单里九份在不同系统对得上账,一致率就是90%。
  1. N_consistent(一致记录数)同一实体在多个数据源中描述统一、没有冲突的记录条数。
    NconsistentN_{consistent}
  2. N_total(总记录数)纳入一致性比对范围的记录总条数,是这场“对账”的样本总量。
    NtotalN_{total}
  3. 相除求统一比例一致记录数与总记录数相除,得到所有记录中口径统一的份额。
    NconsistentNtotal\frac{N_{consistent}}{N_{total}}
  4. 转换为百分比乘以100%之后,得到衡量数据一致程度的最终得分。
    ×100%\times 100\%

时效性维度

“这筐鱼是昨天的,扔了吧。”老周验收生鲜时,过期食材一律拒收。数据也一样有“保质期”:昨日的股价对今天的交易决策毫无意义,甚至有害。时效性衡量的是数据从“事件发生”到“数据可用”的时间差,以及数据覆盖时间是否还在有效期内。

时效性问题在现实业务中无处不在:电商平台的库存数据如果延迟两小时,就可能出现“拍下无货”的窘境;医疗指标数据如果滞后,医生就可能看到过时的化验结果。实时推荐系统需要毫秒级的日志数据,而年度报告允许几天甚至几周的数据延迟,这就是“时效性要求”的差别。

时效性的量化指标叫做“新鲜度”:数据延迟越短、有效期越长,时效性得分越高;当延迟时间超过数据的有效周期时,这条数据就彻底“变质”,评分直接归零。对于流式数据管道,还可以用“水印延迟”来精确追踪每条数据的到达时间。

老周的生鲜区贴着“当日送达”的标语,隔夜菜绝对不上桌。数据团队也紧盯延迟指标,一旦发现数据管道堵塞、时效告急,就第一时间修复。时效性不是“越快越好”,而是“在需要的时间刚好新鲜”。

Timeliness=max⁡(0,  1−TdelayTvalid)Timeliness = \max\left(0,\; 1 - \frac{T_{delay}}{T_{valid}}\right)
时效性等于1减去“数据延迟占有效期的比例”,下限为0。合同数据要求一周内入库,结果拖了70天才入库,时效性就归零了。
  1. T_delay(数据延迟)从业务事件发生到数据完成入库所经历的间隔时间,代表食材在路上的运输时长。
    TdelayT_{delay}
  2. T_valid(有效周期)数据能保持业务价值的最长时限,代表食材的保质期。
    TvalidT_{valid}
  3. 延迟占比计算延迟时间除以有效周期,得到“已经消耗掉的保质期”比例。
    TdelayTvalid\frac{T_{delay}}{T_{valid}}
  4. 1减去延迟占比用1减去该比例,把“越延迟分越低”转成“越新鲜分越高”的正向指标。
    1−TdelayTvalid1 - \frac{T_{delay}}{T_{valid}}
  5. 截断为不小于0取最大值函数把负值截断为0,防止过期太久的数据继续倒扣分数。
    max⁡(0,  ⋅)\max\left(0,\; \cdot\right)

唯一性维度

老周曾发现仓库角落里堆着两箱一模一样的进口牛肉,核对单据才发现供应商把同一批货发了两次。食材重复入库会造成库存虚高,数据重复则更隐蔽,危害却更大。唯一性问题指同一实体在数据集中出现多条重复记录。

典型场景包括:同一用户注册了两次、同一笔订单录入了三遍、传感器每分钟上报却因重传机制积累了多份副本。重复数据会让模型对高频实体“过度敏感”——比如训练用户画像时,重复出现的用户被当作多个人,特征权重严重失衡。在统计报表中,重复记录还会虚增指标、误导决策。

唯一率的计算是“去重后的记录数 ÷ 原始记录数”。实现去重通常先选定唯一标识(主键),比如用户ID、订单号,再依据该标识去除重复行。更复杂的去重还要结合多字段相似度匹配,找出那些“不是完全相同但是同一实体”的记录。

老周现在每次收货都对着条形码逐箱扫码,重复送货一眼识破。数据团队则为主键设计和去重流程制定规矩,把“一人多号、一号多单”的重复库存清得干干净净。唯一性看似简单,做不好却会悄悄拉低所有下游统计的可信度。

Uniqueness=NuniqueNtotal×100%Uniqueness = \frac{N_{unique}}{N_{total}} \times 100\%
唯一率等于去重后的条数,除以去重前的总条数。一百条记录里只有八十个独立用户,唯一率就是80%。
  1. N_unique(唯一记录数)按主键剔除重复之后剩下的独立记录条数,代表真正不同的实体总量。
    NuniqueN_{unique}
  2. N_total(原始记录数)去重之前数据集里的全部记录条数,包含那些“重复送货”的多余记录。
    NtotalN_{total}
  3. 相除求独立比例唯一记录数与原始记录数相除,得到独立实体所占的份额。
    NuniqueNtotal\frac{N_{unique}}{N_{total}}
  4. 转换为百分比乘以100%之后,越接近100%说明重复越少,数据越“干净利落”。
    ×100%\times 100\%

有效性维度

“这批土豆怎么大小不一,还有发芽的?”老周的供应商手册里白纸黑字写着规格:直径五厘米以上、无发芽、无破损。不符合规格的食材,就算价格再便宜,老周也不收。这就是“规格验收”,对应数据质量里的有效性维度。

有效性是数据内容符合预先定义规则的程度。规则包括数据类型(年龄必须是整数)、取值范围(占比在0到100之间)、格式要求(手机号必须是11位数字)等。它和准确性有微妙区别:准确性看数据与真实世界是否一致,有效性看数据与业务规则是否一致。一条记录可能“真实但违规”,比如实际营业额1000万,但字段只允许两位小数,就录入成了1.00万。

有效性检查实现简单、自动化程度高。只需为每个字段配置校验规则,逐条记录跑规则,统计通过率即可。对于违反规则的记录,可以拦截入库、标记为异常,或退回上游系统修正。在大规模数据管道中,有效性检查是性价比最高的第一道防线。

老周的土豆机自动筛选大小,不达标的滚进垃圾桶。数据团队用schema校验和规则引擎做“自动化筛选”,数万条记录眨眼间完成体检。有效性是六维中最好“落地”的维度——写几条规则挂上,质量关口就自动运转了。

Validity=NvalidNtotal×100%Validity = \frac{N_{valid}}{N_{total}} \times 100\%
有效率等于通过全部校验规则的记录数,除以参与校验的记录总数。一百条订单里九十七条通过规则检查,有效率就是97%。
  1. N_valid(合格记录数)满足所有规则约束、没有“违规项”的记录条数,代表达标食材的总量。
    NvalidN_{valid}
  2. N_total(总记录数)参与校验的全部记录条数,代表所有送检的食材总数。
    NtotalN_{total}
  3. 相除求合规比例合格记录数与总记录数相除,得到数据整体符合规则的程度。
    NvalidNtotal\frac{N_{valid}}{N_{total}}
  4. 转换为百分比乘以100%后得到有效率,用来评估规则的覆盖与数据合规的水平。
    ×100%\times 100\%

权衡与应用

同样是食材验收,日料店把新鲜度放在第一位,火锅店更看重品种齐全,西餐厅则死磕规格等级。“六道关卡”没有绝对的权重,关键看你要做什么菜。数据质量也一样,不同AI任务对六个维度的侧重完全不同。

比如在医生诊断辅助系统中,准确性一票否决,错一个值可能就是一条人命;在实时反欺诈系统中,时效性生死攸关,延迟几秒就可能错过拦截窗口;在用户画像系统中,唯一性直接决定画像准不准——重复记录会把一个人拆成两个群体。再看完整性,冷启动的推荐系统可以容忍一定缺失,但风控模型对缺失率极其敏感。这就是“任务侧重点”的含义。

在实际操作中,用加权平均取代第1节的等权平均,是更贴近实战的评分方式。每个维度乘上权重再求和,就得到面向具体任务的综合质量分。权重的设定既来自业务专家经验,也可以通过回归等统计方法从历史数据中学得。这就是数据治理实践中“一任务一策”的核心思想。

老周的后厨贴着不同菜品的验收要点:刺身看鲜度、炖菜看完整、甜品看规格。AI团队的数据质量也应是“一任务一策”,在六维框架之上量身定制权重,才能让数据在正确的方向上为模型服务。记住,评估框架是工具,不是教条;理解任务的真实需求,才是数据质量评估的灵魂。

Q=waccDacc+wcomDcom+wconDcon+wtimDtim+wuniDuni+wvalDvalQ = w_{acc}D_{acc} + w_{com}D_{com} + w_{con}D_{con} + w_{tim}D_{tim} + w_{uni}D_{uni} + w_{val}D_{val}
加权综合分等于每个维度得分乘以对应权重后的总和。所有权重加起来必须等于1,这样总分仍然落在0到100之间,便于横向比较。
  1. 权重 w_i 的含义每个权重代表对应维度在特定任务中的重要程度,取值范围是0到1之间。
    wiw_i
  2. 各维度乘以权重将每个维度的原始得分按重要程度缩放,重要的维度放大影响。
    wiDiw_i D_i
  3. 全部求和把六个缩放后的得分累加,得到任务导向的数据质量总分。
    ∑i=16wiDi\sum_{i=1}^{6} w_i D_i
  4. 权重归一化约束所有权重之和等于1,保证不同任务之间评分尺度统一、可比较。
    ∑i=16wi=1\sum_{i=1}^{6} w_i = 1

AI 应用场景

模型训练前的数据体检

阶段:数据准备

解决的问题:传统做法是拿到数据直接开训,直到模型效果差才回头找数据原因,排查成本极高。AI工程师用六维框架先做一次“数据体检”,在训练前就把错误值、缺失值、重复值、过期数据等问题暴露出来,避免“垃圾进、垃圾出”。

具体案例:一家金融科技公司准备用客户交易数据训练反欺诈模型。团队先跑了六维评估,发现时效性得分仅45分——数据管道延迟高达7天。他们优先修复管道,把延迟降到分钟级,再重跑评估,时效性回升到92分,模型上线后的召回率提升了23%。

外部数据采购验收

阶段:数据获取

解决的问题:企业在采购外部数据时往往只看价格和字段数量,拿到手才发现数据重复严重、格式混乱、覆盖度不足。用六维评分作为验收标准,可以在采购合同里明确质量门槛,避免花钱买回一堆“注水数据”。

具体案例:某自动驾驶公司采购气象数据用于模型训练。验收团队用完整性(缺测率)和一致性(多站数据口径)两个维度重点检查,发现数据缺测率高达18%、各站点湿度单位不一致,据此与供应商重新谈判,成功将采购价压低了30%,并促使供应商补齐缺失时段的数据。

生产环境数据质量监控

阶段:模型运营与维护

解决的问题:模型上线后,数据质量会随业务变化而波动。旧的数据管道可能因上游接口变更而悄悄产出脏数据,人工巡查根本看不过来。将六维框架融入自动化监控,能实时发现并告警质量下滑。

具体案例:某电商推荐系统每天处理数亿条用户行为日志。团队搭建了数据质量看板,对准确性(埋点数值异常)、时效性(日志延迟)、唯一性(重复曝光记录)三个维度设定了阈值,任何维度跌破阈值即自动告警并回滚数据管道。上线半年内,成功拦截了4次重大数据事故。

Python 演示

python71 行
import pandas as pdfrom datetime import datetime  def evaluate_data_quality(df, expected_cols, key_col=None,                          truth_col=None, range_rule=None):    """对数据集执行六大质量维度的量化评估,返回各维度得分字典."""    n = len(df)    result = {}     # 1.准确性:与参考真值列比对,求一致比例    if truth_col and truth_col in df.columns:        result['accuracy'] = round((df['value'] == df[truth_col]).mean() * 100, 2)    else:        result['accuracy'] = None     # 2.完整性:非空字段数除以应有字段数    total_cells = n * len(expected_cols)    filled_cells = sum(df[col].notna().sum() for col in expected_cols)    result['completeness'] = round(filled_cells / total_cells * 100, 2)     # 3.一致性:以key分组,组内字段取值相同才算一致    consistent_rows = n    if key_col:        for _, group in df.groupby(key_col):            if len(group) < 2:                continue            for col in expected_cols:                if group[col].nunique(dropna=True) > 1:                    consistent_rows -= 1                    break    result['consistency'] = round(consistent_rows / n * 100, 2)     # 4.时效性:用最新数据延迟折算新鲜度,90天视为有效周期    if 'date' in df.columns:        age_days = (datetime.now() - pd.to_datetime(df['date']).max()).days        result['timeliness'] = round(max(0, 1 - age_days / 90) * 100, 2)    else:        result['timeliness'] = None     # 5.唯一性:主键去重后剩下的记录比例    if key_col:        result['uniqueness'] = round(df[key_col].nunique() / n * 100, 2)    else:        result['uniqueness'] = None     # 6.有效性:数值是否落在允许区间    if range_rule:        result['validity'] = round(df['value'].between(*range_rule).mean() * 100, 2)    else:        result['validity'] = None     return result  if __name__ == '__main__':    sample_df = pd.DataFrame({        'id': [1, 2, 2, 3, 4, 5],        'value': [100, 200, 200, 300, 400, None],        'name': ['Alice', 'Bob', 'Bob', 'Carol', 'David', 'Eve'],        'date': ['2025-06-01', '2025-06-02', '2025-06-02',                 '2025-06-03', '2025-06-04', '2025-06-05'],        'ground_truth': [100, 200, 200, 299, 400, 500]    })    print(evaluate_data_quality(        sample_df,        expected_cols=['value', 'name'],        key_col='id',        truth_col='ground_truth',        range_rule=(0, 500)    ))
目的:对一份模拟用户数据表执行六维数据质量评估,输出每个维度的百分比得分,帮助你在训练前快速发现数据问题。
  1. if truth_col and truth_col in df.columns:判断是否需要计算准确性,只有提供了“标准答案”列才能核对真伪。
  2. result['accuracy'] = round((df['value'] == df[truth_col]).mean() * 100, 2)逐行比对取值与真值,求一致比例并保留两位小数。
  3. total_cells = n * len(expected_cols)计算完整性分母:所有记录数乘以必填字段数。
  4. filled_cells = sum(df[col].notna().sum() for col in expected_cols)统计每个必填列的非空个数并求和。
  5. for _, group in df.groupby(key_col):按主键分组,为一致性检查准备“同一实体的所有记录”。
  6. result['uniqueness'] = round(df[key_col].nunique() / n * 100, 2)用主键去重后计数,计算唯一率。
  7. result['validity'] = round(df['value'].between(*range_rule).mean() * 100, 2)用 between 检查取值范围,计算有效率。
  8. if __name__ == '__main__':可执行入口,便于直接运行查看评估结果。

常见误区

误区数据量够了AI自然就聪明,有点脏数据没关系。很多大模型不就是靠海量数据喂出来的吗?反正模型能自己“纠正”。

正解数据量大但质量差,模型学到的是错误模式。好比一锅汤里放了一斤盐,食材再多也没法喝。脏数据还会让模型产生系统性偏见,越训练越歪,最终把错误规律当成“经验”输出。

为何常见:行业宣传常强调“海量数据”,让初学者误以为数量可以替代质量,忽略了数据清洗和评估的必要性。

误区只要在训练前把数据清洗一遍,质量就永远没问题了。部署之后就不用再管数据质量了。

正解业务数据每时每刻都在新增,新数据会带来新问题。老周的验收台每天清晨都要工作,数据质量也要持续监控,甚至要纳入持续的运维流程,设置自动告警。

为何常见:把“做一次评估”和“建立质量机制”混为一谈,忽略了数据是流动的、业务是演进的。

误区数据质量评分低于100%就用不了,必须把每个维度都做到完美,缺一项都不敢训练。

正解追求满分成本极高且没必要。数据质量要结合场景权衡,比如冷启动推荐场景中,少量缺失数据完全可以接受,关键是抓住该任务的核心维度。数据质量评分是“体检报告”,不是“生死判决书”。

为何常见:把评估框架当成一票否决的合格线,而忽略了“按需取舍”这个数据工程的核心智慧。

误区只要每条数据都是准确的,重复、延迟、格式乱一点不影响模型效果。

正解其他维度同样致命:重复数据会导致模型过拟合、A/B测试结论失真;过期数据会让推荐系统推荐过季商品;格式混乱会让特征工程寸步难行。老周绝不会因为鱼是鲜的,就收下缺斤少两的虾。

为何常见:准确性最直观也最容易检查,其他维度问题比较隐蔽,容易被忽视。

面试题

Q1. 以下哪一项不属于数据质量的六大维度?

单选题 · easy

  • A.准确性
  • B.完整性
  • C.一致性
  • D.并发性← 正确答案

答案:D。六大维度是准确性、完整性、一致性、时效性、唯一性、有效性。并发性是系统性能概念,与数据质量无关。就像食材验收不会检查“同一时间能炒几个菜”,那是厨房效率问题,不是食材品质问题。

Q2. 准确率的计算公式正确的是?

单选题 · mid

  • A.正确值数/总记录数×100%← 正确答案
  • B.缺失值数/总记录数×100%
  • C.重复值数/总记录数×100%
  • D.异常值数/总记录数×100%

答案:A。准确率衡量数据值与真实世界的一致性,公式为“正确记录数除以总记录数再乘以100%”。B衡量的是缺失程度,C衡量的是重复程度,D衡量的是异常程度,它们分别对应完整性、唯一性、有效性维度。

Q3. 某调查问卷有100行记录,年龄字段有15行缺失。年龄字段的完整率约为?

单选题 · mid

  • A.百分之百
  • B.百分之八十五← 正确答案
  • C.百分之十五
  • D.百分之五十

答案:B。完整率等于非空字段数除以应有字段数再乘以100%。100行记录应有100个年龄值,其中85个非空,所以完整率是85%。就像进货单上10样食材少了1.5样,“齐活率”就是85%。

Q4. 用户表中有两条记录:ID=101地址=北京,ID=101地址=上海。这反映了什么质量问题?

单选题 · mid

  • A.准确性不足
  • B.一致性不足← 正确答案
  • C.时效性不足
  • D.有效性不足

答案:B。同一用户ID在不同记录中地址描述不一致,说明多个系统或批次的数据口径冲突,属于一致性不足。准确性指值与事实不符,时效性指数据过期,有效性指违反规则,均不符合本场景。

Q5. 以下关于数据质量维度权衡的说法,正确的有?

多选题 · mid

  • A.追求高时效性会增加成本← 正确答案
  • B.追求高完整性需更多采集投入← 正确答案
  • C.追求高一致性必然降低准确性
  • D.追求高准确性必然牺牲有效性

答案:AB。A和B是正确的权衡关系:实时管道比离线批处理成本高,完整采集比抽样采集投入大。C和D中的“必然”过于绝对,各维度之间并不存在必然的相互抑制关系。就像老周多花钱买冰鲜运输,是为了新鲜度,但不意味着鱼就一定不完整。

Q6. 某订单表共有100条记录,按订单号去重后只剩80条。唯一率约为?

单选题 · hard

  • A.百分之八十← 正确答案
  • B.百分之七十
  • C.百分之二十
  • D.百分之百

答案:A。唯一率等于去重后的唯一记录数除以原始记录数再乘以100%,即80除以100等于80%。重复的20条记录像同批牛肉送了两次,表面看库存数字很大,实际真实货物只有八成。

Q7. 衡量数据时效性时,通常使用哪些指标?

多选题 · mid

  • A.数据延迟时间← 正确答案
  • B.数据有效周期← 正确答案
  • C.数据来源渠道
  • D.数据存储引擎

答案:AB。时效性由“数据从产生到入库的延迟时间”和“数据能保持业务价值的有效周期”共同决定。来源渠道只影响数据出处,存储引擎只影响读写性能,都与数据新不新鲜没有直接关系。

Q8. 某数据集最新日期为2023年1月1日,今天是2025年,假设数据有效期为90天。该数据集的时效性约为?

单选题 · hard

  • A.百分之九十
  • B.百分之五十
  • C.百分之零← 正确答案
  • D.百分之百

答案:C。时效性公式为max(0, 1 - 延迟/有效周期)。数据延迟约730天,有效期90天,1 - 730/90 为负值,取最大值0。数据早已超过保质期,就像一筐放了两年多的鱼,只能整筐扔掉。

Q9. 评估数据有效性时,通常使用什么手段?

单选题 · easy

  • A.校验规则← 正确答案
  • B.主键设计
  • C.数据采样
  • D.特征工程

答案:A。有效性通过预定义规则约束来检查,如数据类型、取值范围、格式要求等。主键设计解决唯一性,数据采样辅助准确性检查,特征工程是建模前的加工,都不直接对应有效性。

Q10. 在模型训练前的数据质量审查中,以下做法正确的有?

多选题 · hard

  • A.用六维框架全面体检数据← 正确答案
  • B.只检查准确性并跳过其他维度
  • C.根据任务为维度分配权重← 正确答案
  • D.发现少量缺失就放弃训练

答案:AC。A全面体检能发现各类隐患,C按任务加权能聚焦关键维度,都是正确做法。B只看单一维度易漏问题;D反应过度,少量缺失可通过补采、填充等方式处理,不必直接放弃训练。