智能体发现脏数据后怎么办?用问题台账追踪修复与回归复测

发现脏数据后,给问题稳定编号,记录原值、修复提案、人工依据和复测结果。下面用一条负金额样例展示问题从发现到关闭的完整记录。

智能体发现一条异常记录,只说“已清洗完成”不够。团队还需要知道异常在哪里、为何改动、谁确认、同样的检查是否重新通过。可把每个问题当作有编号的条目,而不是直接覆盖原 CSV。

问题台账至少记住四件事

一是稳定问题编号,例如 price-negative-S2;二是原始记录编号和原值;三是拟修复的新值及依据;四是修复后的同规则复测结果。只有“发现→提案→有依据的确认→复测”都完成,才算关闭。status=open 的问题不能因报表消失就自动作废。

智能体发现脏数据后怎么办?用问题台账追踪修复与回归复测

本例假设价格不能小于零,人工另有凭据确认 S2 应为 3。这只是人工构造的教学条件;真实订单、退款和折扣可合法为负时,应先修订规则,而非按这个例子改值。

保留原表并执行一次修复复测

安装 pandas,保存并运行下面的 Python 代码。match.sum()==1 确保只改目标记录且原值仍为预期的 -3;若已经被其他人修改,脚本会停止,避免覆盖更新。

import json
from pathlib import Path
import pandas as pd

# 示例问题与修复记录均为人工构造。
raw=pd.DataFrame({'id':['S1','S2','S3'],'price':[10,-3,12]})
def check(frame):
    return [{'issue_id':f'price-negative-{row.id}','row_id':row.id,'status':'open'}
            for row in frame.itertuples() if row.price < 0]
issues=check(raw)
print('initial=',issues)
# 原始表不覆盖;修复提案与复核决定独立保存。
proposal={'issue_id':'price-negative-S2','old_value':-3,'new_value':3,'reason':'原始录入单另有凭据(教学假设)','reviewer':'human-reviewer'}
fixed=raw.copy()
match=fixed['id'].eq('S2') & fixed['price'].eq(proposal['old_value'])
assert match.sum()==1
fixed.loc[match,'price']=proposal['new_value']
remaining=check(fixed)
events=[{'issue_id':proposal['issue_id'],'action':'repair_proposed','old':-3,'new':3},
        {'issue_id':proposal['issue_id'],'action':'retested','passed':len(remaining)==0}]
status='closed' if len(remaining)==0 else 'open'
audit={'source':raw.to_dict('records'),'detected_issues':issues,'proposal':proposal,
       'events':events,'retest_remaining':remaining,'status':status}
# 每次以同一来源、同一提案重算完整证据文件,不追加相同事件。
audit_path=Path(__file__).with_name('02_issue_loop_evidence.json')
audit_path.write_text(json.dumps(audit,ensure_ascii=False,indent=2),encoding='utf8')
print('events=',events)
print('remaining=',remaining)
print('status=',status,'audit_file=',audit_path.name)
print('raw_unchanged=',raw.loc[1,'price']==-3)

怎样判断问题真的关闭

输出里的初始问题是 S2;事件依次记录修复提案和复测通过,remaining=[] 表示当前规则已没有负数,因此问题状态才变为 closed。脚本还生成 02_issue_loop_evidence.json,保存原始表、问题、提案、事件、复测剩余项与最终状态,供下次核查。raw_unchanged=True 证明原表仍可回查。如果复测仍发现负数,状态保持 open。

initial= [{'issue_id': 'price-negative-S2', 'row_id': 'S2', 'status': 'open'}]
events= [{'issue_id': 'price-negative-S2', 'action': 'repair_proposed', 'old': -3, 'new': 3}, {'issue_id': 'price-negative-S2', 'action': 'retested', 'passed': True}]
remaining= []
status= closed audit_file= 02_issue_loop_evidence.json
raw_unchanged= True

示例使用 pandas 的 DataFrame 复制与条件选择;可对照官方 DataFrame 基础指南检查实际项目的类型与赋值行为。

用于真实数据时还要补什么

示例脚本重跑时从同一原表和提案重新计算,再覆盖同一个证据文件,不向事件列表重复追加;真实多人系统则要以问题编号和事件编号做幂等写入。把台账与原表分开保存,记录实际修复人、时间、来源凭证及版本号。源数据变更后必须再比对原值。对模型训练数据尤其要保留被隔离样本的原因,避免下一次导入又把它带回来。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31688.html

赞 (0)
AI小管家的头像AI小管家
智能体处理表格前怎么定数据质量标准?用字段契约检查缺失、类型与范围
上一篇 2小时前
数据清洗智能体怎么搭建?用白名单操作、预览和变更日志约束执行
下一篇 2小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部