假如你家里开了一家百年火锅店,祖传的底料配方就是命根子。有人想找你合开分店,但你没法把配方原样给他——给了,秘密就没了;不给,合作就卡壳。银行和金融机构遇到的事一模一样:客户数据就是那锅底料,风控模型要靠它,可隐私法规又死死摁住“不能把真实数据交给别人”。那怎么办?聪明的做法是请一位“风味分析师”天天吃你家的锅底,把辣度、麻度、油脂比例、顾客反馈之间的规律记下来,然后照规律重新做一锅新底料。新底料味道结构相似,却没有任何一勺来自原配方——这就是合成数据。它能用来练手、测试、办联合风控,还能过合规审查。本文就用“替身料理”这个比喻,带你搞懂金融合成数据从原理到落地的完整链路。

岗位关联

掌握合成数据方案,你就能在隐私合规的钢丝上,把金融数据变成可共享、可训练、可审计的“安全替身”,这是风控与数据团队必备的突围技能。

目录
  1. 可视化演示
  2. 金融数据的“祖传秘方”困境
  3. 合成数据原理:照着菜谱另起一锅
  4. 风控模型训练:让模型吃得放心
  5. 反欺诈增强:给安全员多喂“假毒菜”
  6. 压力测试:把“百年一遇”练成家常便饭
  7. 质量评估:三关都过才上餐桌
  8. ROI 分析:老板要看的账本
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示金融数据不能随便用?合成数据的核心机制,通过概览/流程/对比/趋势四种模式展示关键概念与交互流程。

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

金融数据不能随便用?合成数据:合成数据 合成数据解决金融数据使用痛点的 风控模型训练的隐私合规合成方案 核心机制可视化 金融数据不能随便用?合成数据整体架构与关键组件

金融数据的“祖传秘方”困境

假设你家有一锅祖传火锅底料,配方是几代人攒下来的财富。客人想合伙开店,你不可能把配方原样递出去;但完全不合作,生意又做不大。银行的数据困境正是如此:客户数据就是那锅底料,风控模型要靠它吃饭,可隐私法规定死了“外部合作不能共享原始数据”。

更麻烦的是传统脱敏。脱敏像是往底料上撒花椒粉掩盖味道,看起来把姓名、手机号遮住了,但多个字段组合起来仍可能“人肉”出真实身份。字段越多,组合爆炸越严重。结果就是银行之间数据孤岛越筑越高,共享成本高、速度慢,很多联合风控项目直接胎死腹中。

用一个简单模型就能理解重识别风险:一张表有 \(n\) 个可关联字段,每个字段独立泄露真实身份的概率是 \(\rho\),那么所有字段都不泄露、数据可合规使用的概率是 \((1-\rho)^n\)。字段越多,合规可用概率越小。

这就是金融界需要合成数据的原因:与其费劲护住原配方,不如照统计规律另做一锅“风味等价”的替身料理。替身料理端给谁都不心疼,因为里面没有一滴原汤。

Compliant=(1−ρ)n\mathrm{Compliant} = (1-\rho)^n
  1. 单个字段泄露风险一个可关联字段被外部猜中真实身份的概率,像一勺调料被外人认出产地的概率
    ρ\rho
  2. 字段不泄露概率某一个字段没有泄露身份的概率,是风险的补集
    1−ρ1-\rho
  3. 所有字段合规假设字段间独立,所有字段都不泄露,整张表才能合规使用
    (1−ρ)n(1-\rho)^n
  4. 合规可用率这就是我们要判断的合规概率,字段越多它越小,所以原始数据越来越难跨界分享
    Compliant=(1−ρ)n\mathrm{Compliant}=(1-\rho)^n

合成数据原理:照着菜谱另起一锅

什么是合成表格数据?继续用火锅店比喻:老板请一位顶级“风味分析师”天天吃自家的锅底,记录辣度、麻度、油脂比例、顾客评分之间的规律,然后不抄菜品,而是按规律重新做菜。得到的新菜品和原口味统计相似,但每一份都是全新的。

在机器学习里,这位分析师就是生成模型。把真实表格 \(D_{\text{real}}\) 喂给它,它学到列与列之间的联合分布 \(P_{\theta}(X)\),再从中抽样生成合成表。合成表保留相同列名、相同业务含义和相似分布,但每一行都不是原数据里的某个客户的复制品。

所以“合成”不是“复制”,也不是“打码”,而是“学会规律后重做”。这锅替身料理既能用来练手,又不会暴露祖传秘方,这正是它能过金融隐私关的原因。

xsyn∼Pθ(X∣Dreal)x_{\text{syn}} \sim P_{\theta}(X \mid D_{\text{real}})
  1. 真实数据原始表格是生成模型的学习素材,相当于大厨珍藏的底料样本
    DrealD_{\text{real}}
  2. 参数化分布模型学到的概率分布,代表“辣度和麻度之间是什么关系”这类统计规律
    Pθ(X∣Dreal)P_{\theta}(X \mid D_{\text{real}})
  3. 抽样生成从分布中随机抽样,得到一条全新的合成记录
    xsyn∼Pθ(X∣Dreal)x_{\text{syn}} \sim P_{\theta}(X \mid D_{\text{real}})

风控模型训练:让模型吃得放心

风控模型训练需要大量“试吃”。见习厨师如果只尝过几道菜,遇到新口味就翻车;银行风控模型也一样,如果合格样本太少,模型扛不住经济波动。合成数据最适合当“练习菜”:把真实数据和合成数据混合成训练集,让模型在更丰富的数据上学习。

合成数据扩充风控训练集有两大直接收益:一是增加样本量,让模型见更多“客户画像”;二是平衡好坏样本,把数量稀少的违约样本合成出来,避免模型只会说“全都不违约”。而且合成表不包含真实客户,用它做训练更容易通过隐私合规审查。

混合训练不是简单堆量。常用做法是让训练集等于真实样本集和合成样本集的并集,再用保留的真实数据验证效果。如果合成数据质量太差,混入过多反而会让模型学偏,因此训练完成后必须用真实样本做最终评估。

混合训练让模型既尝过“真材实料”,也见过“仿真练习菜”,预测更稳、也更合规。这是风控建模里合成数据最落地的一步。

Dtrain=Dreal∪DsynD_{\text{train}} = D_{\text{real}} \cup D_{\text{syn}}
  1. 真实样本集店里真实客人的账单,是模型最可信的教材
    DrealD_{\text{real}}
  2. 合成样本集按统计规律做出来的练习菜,负责扩充菜谱覆盖面
    DsynD_{\text{syn}}
  3. 取并集把真实和合成样本放在一起,组成一个更大的训练集
    Dtrain=Dreal∪DsynD_{\text{train}} = D_{\text{real}} \cup D_{\text{syn}}

反欺诈增强:给安全员多喂“假毒菜”

后厨的食品安全员,最怕的是没见识过毒菜。现实中的欺诈交易极少,一万笔里可能只有几笔是骗子,就像后厨一年才遇到一次的变质食材。模型没见过几个欺诈样本,自然学不会识别。

合成数据可以批量生成“假毒菜”:通过学习真实欺诈模式,造出更多样化的欺诈样本,让安全员反复练习。比如同时模拟突然的大额消费、异地短时间刷卡、新设备登录等组合特征,把欺诈模式的多样性补上来。

评价安全员要看两件事:召回率是“真毒菜里抓到了多少”,精确率是“抓到的菜里有多少真是毒菜”。反欺诈模型也一样。F1 分数把两者揉成一个指标,方便比较不同模型。

合成数据补齐“毒菜样本”后,安全员既不会漏掉真毒菜,也不会把所有菜都倒掉,误报率和资金损失一起降下来。

F1=2×Precision×RecallPrecision+RecallF1 = \frac{2 \times \mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}}
  1. 精确率预测为欺诈的样本中真实欺诈的比例,对应安全员抓到的嫌疑菜里真正有毒的比例
    Precision=TPTP+FP\mathrm{Precision}=\frac{TP}{TP+FP}
  2. 召回率真实欺诈样本中被模型捕获的比例,对应所有毒菜里被安全员拦下的比例
    Recall=TPTP+FN\mathrm{Recall}=\frac{TP}{TP+FN}
  3. F1 分数精确率和召回率的综合平衡分,两者都高,分数才高
    F1=2×Precision×RecallPrecision+RecallF1=\frac{2 \times \mathrm{Precision} \times \mathrm{Recall}}{\mathrm{Precision} + \mathrm{Recall}}

压力测试:把“百年一遇”练成家常便饭

后厨要经常做消防演习:假设停电、断水、所有客人同时过敏,看看餐厅会不会崩。银行压力测试也是同样逻辑,监管要求银行模拟极端经济情景,比如市场暴跌、失业率飙升,计算这时候贷款组合会亏多少。

但银行没有足够的历史数据覆盖这些极端场景,因为真正的大崩盘在数据里只出现过一两次。合成数据可以按监管设定的压力剧本,生成大量“假想极端订单”,填入各行业、各区域的违约数据,让压力测试有足够的样本跑模拟。

信用风险损失常用一个公式表达:预期损失等于违约概率乘以违约损失率再乘以违约敞口。压力情景下违约概率显著上升,预期损失随之放大。合成数据正是用来模拟“外部冲击导致违约概率上升”的条件。

合成数据让“百年一遇”变成可反复演练的日常假想,银行能提前备好预案,监管报送也有数据支撑。

ELstress=PDstress×LGD×EAD\mathrm{EL}_{\text{stress}} = PD_{\text{stress}} \times LGD \times EAD
  1. 压力违约概率压力情景下客户违约的概率,像停电后菜品变质的概率大幅上升
    PDstressPD_{\text{stress}}
  2. 违约损失率违约发生后无法收回的比例,像变质菜造成的食材浪费比例
    LGDLGD
  3. 违约敞口违约时客户欠款余额,像后厨为这道菜准备的食材总量
    EADEAD
  4. 预期损失三者相乘得到压力情景下的平均损失
    ELstress=PDstress×LGD×EAD\mathrm{EL}_{\text{stress}} = PD_{\text{stress}} \times LGD \times EAD

质量评估:三关都过才上餐桌

替身料理不是随便做的。如果只是颜色像,味道差很多,试菜员一吃就露馅。合成数据也一样,必须用尺子量它像不像、安不安全、能不能用。金融监管尤其在意:合成数据如果泄露真实客户,或无法支撑模型效果,就不能上线。

三个核心维度是保真度、隐私性和效用。保真度看统计分布像不像,隐私性看能否反推出真实个人,效用看下游模型能不能用。保真度常用 Hellinger 距离衡量两个分布的差异,距离越小越相似:

隐私评估不能只看距离,还要做成员推理攻击测试:把合成记录和真实记录比对,看有多少条能在真实表中找到“同卵双胞胎”。最理想是即使分布很像,也不能反推出某个具体客户被包含在训练集里。这些指标就像食安检测报告,形似、神似、安全三关都过,合成数据才有资格上金融业务的餐桌。

DH(P∥Q)=12∑i=1k(pi−qi)2D_H(P\parallel Q) = \frac{1}{\sqrt{2}} \sqrt{ \sum_{i=1}^{k} \left( \sqrt{p_i} - \sqrt{q_i} \right)^2 }
  1. 两套分布真实数据和合成数据的概率分布,像两套菜的风味指纹
    P, QP,\ Q
  2. 单点差异对每个类别的概率开根号后相减,可以放大小概率类别的差异
    pi−qi\sqrt{p_i} - \sqrt{q_i}
  3. 平方和差值平方求和,把每个类别上的差异汇总为整体差异
    ∑i=1k(pi−qi)2\sum_{i=1}^{k}(\sqrt{p_i} - \sqrt{q_i})^2
  4. 距离归一开根号并除以 \(\sqrt{2}\),得到 0 到 1 之间的 Hellinger 距离,越小越相似
    DH(P∥Q)=12∑i=1k(pi−qi)2D_H(P\parallel Q) = \frac{1}{\sqrt{2}} \sqrt{ \sum_{i=1}^{k} \left( \sqrt{p_i} - \sqrt{q_i} \right)^2 }

ROI 分析:老板要看的账本

餐厅老板最终要算一笔账:买台“仿真料理机”到底值不值?金融公司也一样,合成数据项目必须算 ROI。如果为了省一点数据购买费,反而花掉大量 GPU 和人力调模型,可能并不划算;但如果能大幅降低合规成本、加速模型上线,投入就非常值。

成本包括数据处理、生成模型训练、合成质量评估和合规审计的人力;收益包括减少外部数据采购、缩短模型迭代周期、降低隐私泄露罚款风险,以及让之前因数据孤岛做不了的业务跑起来。把这些折现后相减,就得到净收益。

ROI 是给老板看的决策尺子。合成数据不是万能药,用对地方就是高回报的“替身料理”,用错地方则会变成烧钱的无底洞。

ROI=Bsyn−CsynCsyn×100%\mathrm{ROI} = \frac{B_{\text{syn}} - C_{\text{syn}}}{C_{\text{syn}}} \times 100\%
  1. 项目成本合成数据项目花掉的总成本,像购置仿真料理机的钱和维护费
    CsynC_{\text{syn}}
  2. 项目收益合成数据带来的总收益,像省下的食材费、罚款风险和新增客单收入
    BsynB_{\text{syn}}
  3. 净收益用收益减去成本,看一个项目周期内到底多赚了多少钱
    Bsyn−CsynB_{\text{syn}} - C_{\text{syn}}
  4. 投资回报率净收益除以成本,再乘以 100%,得到易于比较的百分比
    ROI=Bsyn−CsynCsyn×100%\mathrm{ROI} = \frac{B_{\text{syn}} - C_{\text{syn}}}{C_{\text{syn}}} \times 100\%

AI 应用场景

银行间联合风控建模

阶段:数据准备 / 模型训练

解决的问题:传统方式下两家银行不能共享真实客户特征,只能各自建模,样本少、覆盖面窄。合成数据让双方把各自分布信息做成合成表,合规共享,联合训练风控模型。

具体案例:某股份制银行与消费金融公司合作,真实数据不出域,用合成数据完成联合训练,模型 AUC 提升约 4 个百分点,并通过法务合规审查。

信用卡反欺诈检测增强

阶段:数据增强 / 模型调优

解决的问题:欺诈交易占比极低,模型容易漏报;合成数据生成多样化欺诈样本,提升模型召回率。

具体案例:某支付公司用条件生成模型合成 2 万条欺诈交易特征,将欺诈召回率从 71% 提升到 86%,同时误报率小幅下降。

监管压力测试数据准备

阶段:场景模拟 / 监管报送

解决的问题:压力测试需要极端情景,但历史数据样本不足,真实数据又含客户隐私,不便外发给第三方模型。合成数据按监管剧本生成极端经济场景。

具体案例:某城商行合成 3000 组悲观情景下的贷款组合数据,覆盖 12 个行业,完成压力测试报送,节省大量手工构造时间。

Python 演示

python87 行
# -*- coding: utf-8 -*-"""最小版表格合成数据演示: 学习真实表列间条件分布, 生成合成表并评估保真度与隐私."""import randomfrom collections import Counter  def hellinger(p, q):    """计算两个概率字典的 Hellinger 距离, 取值范围约 [0, 1]."""    keys = set(p) | set(q)    diff_sq = sum((p.get(k, 0.0) ** 0.5 - q.get(k, 0.0) ** 0.5) ** 2 for k in keys)    return diff_sq ** 0.5 / 1.41421356  def fit_conditional(rows):    """按列顺序学习条件分布: 第 i 列依赖前 i 列的组合. rows 为元组列表."""    model = []    for col in range(len(rows[0])):        table = {}        for row in rows:            prefix = tuple(row[:col])            value = row[col]            if prefix not in table:                table[prefix] = Counter()            table[prefix][value] += 1        model.append(table)    return model  def generate(rows, n, seed):    """根据条件分布生成 n 条合成记录."""    rnd = random.Random(seed)    model = fit_conditional(rows)    result = []    for _ in range(n):        rec = []        for col, table in enumerate(model):            prefix = tuple(rec)            counter = table.get(prefix)            if counter is None:                counter = Counter(r[col] for r in rows)            values = list(counter.keys())            weights = list(counter.values())            rec.append(rnd.choices(values, weights=weights)[0])        result.append(tuple(rec))    return result  def privacy_leak(real, synth):    """返回合成记录在真实表中出现的比例, 比例越低隐私风险越低."""    real_set = set(real)    leak = sum(1 for row in synth if row in real_set) / len(synth)    return leak  def to_dist(values):    counter = Counter(values)    total = sum(counter.values())    return {k: v / total for k, v in counter.items()}  if __name__ == "__main__":    rng = random.Random(42)    real_rows = []    for _ in range(400):        age = rng.choice(["young", "mid", "old"])        if age == "young":            income = rng.choices(["low", "mid", "high"], weights=[70, 25, 5])[0]        elif age == "mid":            income = rng.choices(["low", "mid", "high"], weights=[25, 55, 20])[0]        else:            income = rng.choices(["low", "mid", "high"], weights=[15, 50, 35])[0]        if income == "low":            default = rng.choices([0, 1], weights=[85, 15])[0]        else:            default = rng.choices([0, 1], weights=[95, 5])[0]        real_rows.append((age, income, default))     synthetic = generate(real_rows, 600, seed=7)     names = ["age", "income", "default"]    for idx, name in enumerate(names):        real_dist = to_dist([row[idx] for row in real_rows])        syn_dist = to_dist([row[idx] for row in synthetic])        h = hellinger(real_dist, syn_dist)        print("%s hellinger: %.4f" % (name, h))     print("privacy leak rate: %.4f" % privacy_leak(real_rows, synthetic))
目的:用条件抽样生成一张与真实数据分布相似的合成表格,并输出各列的 Hellinger 距离和隐私泄露率。
  1. model = fit_conditional(rows)学习每一列在前几列条件下的概率分布,像大厨把风味规律记在脑中。
  2. counter = table.get(prefix)根据已有前缀找到对应条件分布,若缺失则回退到全量分布,保证生成不中断。
  3. rec.append(rnd.choices(values, weights=weights)[0])按条件概率随机抽一个值,完成一列采样。
  4. real_set = set(real)把真实记录转成集合,便于快速判断合成记录是否与真实记录完全相同。
  5. leak = sum(1 for row in synth if row in real_set) / len(synth)计算合成表中真实记录的占比,用来评估成员推理风险。
  6. h = hellinger(real_dist, syn_dist)比较真实列与合成列的概率分布,值越小说明保真度越高。

常见误区

误区合成数据就是把真实数据的姓名、手机号删掉,再随机补一些假字段。我经常把脱敏和合成搞混。

正解脱敏是在真实记录上做变形,本质上还是某个真实客户的映射;合成数据是从统计分布中重新抽样生成的全新记录,不存在一一对应的真实主体。用火锅比喻,脱敏是给原配方撒花椒粉改味,合成是照统计规律另起一锅新菜。若只用脱敏,金融监管仍可能认为重识别风险高。

为何常见:两者都是为了保护隐私,结果长得很像;很多工具宣传时也把脱敏和合成混在一起说。

误区合成数据分布和真实数据越像越好,越像才越安全。

正解分布像只能说明保真度高,但保真度越高,生成记录越可能落在真实记录的密集区域,成员推理攻击反而更容易成功。安全不是只看分布,还要看合成记录与真实记录的重复率、差分隐私预算等。就像味道完全复刻的替身菜,如果连原菜编号都复刻了,就会泄露后厨信息。

为何常见:人们习惯把“质量高”等同于“效果好”,忽略了隐私与效用本质上是权衡。

误区合成样本越多,模型效果一定越好,所以我把真实数据全部换成合成数据来训练。

正解合成样本本身带有模型误差,如果无限制混入,模型可能会学到生成模型的偏好,而不是真实的业务规律。正确做法是控制混合比例,并用保留的真实数据验证。就像练习菜做得再多,也不能替代真实客人的试吃反馈,最终还要真实顾客验收。

为何常见:数据增强在图像领域常能靠扩量提升效果,很多人把这个直觉原样搬到了金融表格上。

误区只要做出一套高质量合成数据,就满足所有监管要求,风控、反欺诈、压力测试都能直接用。

正解金融监管目前并没有把合成数据列为“免检”数据。监管通常要求提供生成过程说明、保真度与隐私评估报告、下游模型效果证据。一套针对风控调优的数据,未必能满足压力测试对极端情景的要求,需要分场景生成并分别审计。

为何常见:技术演示里合成数据效果很惊艳,容易让人忽略金融场景对证据链和可解释性的硬性要求。

面试题

Q1. 合成表格数据和脱敏数据最本质的区别是什么?

单选题 · easy

  • A.合成数据是全新生成的记录← 正确答案
  • B.脱敏数据是全新生成的记录
  • C.合成数据不能用于模型训练
  • D.脱敏数据没有任何隐私风险

答案:A。合成数据是从统计分布中重新抽样出来的全新记录,脱敏数据仍是真实记录变形。就像另做一锅新菜和往原菜上撒花椒粉的区别。合成数据可以用于模型训练,脱敏数据也并非绝对安全。

Q2. 银行互金场景中合成数据最主要解决什么痛点?

单选题 · easy

  • A.数据不能共享和隐私合规← 正确答案
  • B.数据库服务器硬盘太小
  • C.手机 App 界面不够美观
  • D.客户投诉电话打不进来

答案:A。金融机构最大的痛点是原始客户数据受隐私法规约束,不能随意共享。合成数据提供合规替代品,与存储、界面或客服无关,所以选 A。

Q3. 风控模型训练时,合成数据通常用于?

单选题 · easy

  • A.扩充训练样本和平衡类别← 正确答案
  • B.替代全部真实训练数据
  • C.提高数据库查询速度
  • D.自动生成风险审批规则

答案:A。合成数据可以扩充样本量,并合成稀缺的违约样本。它不能完全替代真实数据,也不负责数据库优化或规则生成,因此 B、C、D 错误。

Q4. 反欺诈检测中,合成欺诈样本最主要提升什么指标?

单选题 · mid

  • A.欺诈样本召回率← 正确答案
  • B.广告点击转化率
  • C.页面加载速度值
  • D.数据库并发数量

答案:A。反欺诈模型最怕漏掉真欺诈,合成数据补足欺诈样本后,主要提升召回率。广告、页面速度、并发量都与反欺诈无关。

Q5. 压力测试中合成极端情景数据的意义是什么?

单选题 · mid

  • A.模拟低概率高损失风险场景← 正确答案
  • B.降低客户违约率真实值
  • C.缩短用户借款到账时间
  • D.提升手机银行登录速度

答案:A。压力测试的目标是模拟极端但低概率的市场情景,计算潜在损失。合成数据不能改变真实违约率,也与借款到账、登录速度无关。

Q6. 评估合成数据与真实数据分布差异,常用的指标是?

单选题 · mid

  • A.Hellinger 距离指标← 正确答案
  • B.主成分维度数量
  • C.数据库表行数大小
  • D.页面缓存命中次数

答案:A。Hellinger 距离专门衡量两个概率分布的相似程度,是合成数据保真度评估常用指标。其余选项与分布相似度无关。

Q7. 关于合成数据的隐私保护,下列说法正确的是?

单选题 · mid

  • A.仍要评估成员推理攻击风险← 正确答案
  • B.只要删掉姓名就绝对安全
  • C.合成数据不可能泄露隐私
  • D.隐私情况不需要写入报告

答案:A。即使删掉姓名,组合字段仍可能重识别;合成数据也可能因为过度拟合真实分布而产生成员推理风险。因此必须做隐私评估并写入报告。

Q8. 金融监管机构对合成数据的要求通常不包括?

单选题 · hard

  • A.生成模型开源所有代码← 正确答案
  • B.提供保真度和隐私报告
  • C.说明数据生成过程
  • D.评估下游模型效用

答案:A。监管关注的是证据链和可审计性,包括生成过程说明、保真度与隐私评估、下游模型效用,但不要求开源核心生成模型代码。选 A。

Q9. 合成数据在金融中的典型应用场景有哪些?

多选题 · mid

  • A.联合风控模型训练← 正确答案
  • B.反欺诈样本增强← 正确答案
  • C.压力测试情景生成← 正确答案
  • D.替代客户身份验证

答案:ABC。联合风控、反欺诈增强、压力测试都是文中提到的落地场景。客户身份验证必须基于真实可信流程,不能用合成数据替代,所以 D 错误。

Q10. 关于金融场景中使用合成数据,以下哪些做法是恰当的?

多选题 · extreme

  • A.保留生成过程说明← 正确答案
  • B.提交保真与隐私报告← 正确答案
  • C.宣称合成数据免检
  • D.用真实集验证模型效用← 正确答案

答案:ABD。合成数据要用于金融业务,必须有生成过程说明、保真与隐私报告,并用真实集验证最终效果。声称“免检”夸大其词,监管仍要求完整证据链,因此 C 错误。