Evidently数据质量检测实战:三步跑通缺失值、重复值、异常值全筛查
【免费下载链接】evidentlyEvidently is an open-source ML and LLM observability framework. Evaluate, test, and monitor any AI-powered system or data pipeline. From tabular data to Gen AI. 100+ metrics.项目地址: https://gitcode.com/GitHub_Trending/ev/evidently
模型刚在离线环境里验证完:准确率 94%,AUC 正常,你信心满满地上线了。两周后预测分数开始漂移,一查日志,某个特征列突然 30% 的值为空,重复记录堆成一片。缺失值、重复值、异常值这三类问题,用 Evidently 做数据质量检测,就能一次性变成一份能打开看的 HTML 报告,不用手写 pandas 脚本逐列排查。
Evidently:能装进流水线的"质检员"
Evidently 是一个开源的 ML 与 LLM 系统评估与监控框架,从表格数据到生成式 AI 都能覆盖。你丢给它一个 DataFrame,它回你一份能在浏览器里直接打开的数据质量报告 HTML 页面。它凭什么值得试,三点就够了:
- 内置 100+ 个指标,覆盖数据质量、数据漂移、模型性能、文本评测四大类
- 用 DataSummaryPreset 预设,一次就能跑完全部列的统计,不用逐个挑指标
- 传入两个 DataFrame(当前数据 + 参考数据),自动给出并排对比结果
明白了它的定位,下面直接上手。
三步生成首份数据质量报告
第 1 步,装环境。克隆仓库并安装最小依赖:
git clone https://gitcode.com/GitHub_Trending/ev/evidently cd evidently pip install -r requirements.min.txt第 2 步,加载数据。任意想检查的表,读进一个 pandas DataFrame:
import pandas as pd df = pd.read_csv("orders.csv")第 3 步,出报告。用 DataSummaryPreset 预设跑一遍,存成 HTML 文件:
from evidently import Report from evidently.presets import DataSummaryPreset report = Report([DataSummaryPreset()]) snapshot = report.run(df) snapshot.save_html("quality_report.html")✅ 跑完得到一个单文件 HTML 报告:浏览器双击就能看,放进 Jupyter notebook 里也会直接渲染。如果 run 时再传一张参考表,还能多出一组漂移对比结果。
读懂报告:三类问题,三种处理方式
📊 报告里每个指标都有独立面板,问题会被标红。第一次打开别急着看细节,先按下面三类问题找。
缺失值检测报告怎么看
每列都会列出缺失数量和缺失占比,比如"phone 列缺失 3200 个,占比 28%"。怎么理解:占比低于 5% 的,通常做插补就能处理;超过 10% 就先去怀疑上游 ETL 环节,而不是靠模型插值把问题糊过去。整表层面还有两个指标——全表缺失总数(DatasetMissingValueCount)和整行为空的行数(EmptyRowsCount),专门用来抓上游某批次写空记录的情况。
重复值筛查报告怎么看
DuplicatedRowCount 统计完全相同的行数,DuplicatedColumnsCount 统计与其他列内容完全一样的列数。重复行就像同一个人门口签到两次:少量没关系,上千行就要回头查日志拼接环节是不是串了。重复列不为 0 通常是特征冗余,删掉即可;如果是整列为空,那属于 EmptyColumnsCount 的范畴,直接去查数据源。
异常值识别报告怎么看
🔍 数值列都有最小值、最大值、均值、标准差这些统计量,外加一张分布直方图。异常值就像班里后排高出别人一头的同学:看到直方图拖着一条长尾、或 max 比均值高几个数量级,就先点开该列的明细看。想要量化的结论,用 OutRangeValueCount 给一列指定合理区间(例如把 age 限定在 18 到 65),报告会直接告诉你"超出区间"的记录数和占比,不用自己写 if 判断。
一次性排查完了,下一个问题是:怎么让它变成例行任务?
进阶玩法:把检查变成例行规则
Evidently 给每个指标都配了 tests 机制:比如给"age 列均值 > 25"挂一个 gt(25) 的条件,报告里就会以红绿状态显示通过与否,可以直接接进 CI,上线前自动拦截。持续监控方面,项目自带 Grafana + Prometheus 的仪表板示例(examples/grafana/ 目录),同一套数据质量指标可以挂上墙,缺失率一飙高你先知道。想继续挖自定义指标,可以翻 src/evidently/metrics/ 目录。
收个尾
数据质量检测不是一次性任务,而是和数据一起跑的习惯。挑一张你最近波动最大的表,把上面三步走一遍,5 分钟后你手上就有第一份报告了。
【免费下载链接】evidentlyEvidently is an open-source ML and LLM observability framework. Evaluate, test, and monitor any AI-powered system or data pipeline. From tabular data to Gen AI. 100+ metrics.项目地址: https://gitcode.com/GitHub_Trending/ev/evidently
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考