“如果当初我没有选理科,现在是不是早成了小说家?”夜深人静时,几乎每个人都这样追问过自己。这种“如果当初……”的想象并非无用的空想,而是人类理解因果规律的本能——我们不仅想知道“为什么是我”,更想知道“重来一次,怎么做才能赢”。 当人工智能模型做出一个让人意外的判决时(拒绝贷款、排除治疗方案、淘汰简历),用户需要的也不只是一句“因为你的某项指标太低”,而是一张“如何翻盘”的处方:把哪个特征从多少改成多少,预测就能翻转?这个从“既定失败”出发,反向寻找“最小改动翻盘点”的过程,就是反事实解释(Counterfactual Explanation)。 想象你是一位手持“人生复读机”的时空旅者:每次结果不如意,就按一下按钮,跳进平行世界查看“改了哪几项可以翻盘”。反事实解释,就是这台复读机的导航仪——它不回答“你为何失败”,而是直接告诉你“怎样做才能成功”。

岗位关联

掌握反事实解释,你就能为黑箱模型补上“建设性反馈”这一环——从解释过去转向指导未来。这是AI工程师迈向高级可解释性应用、赢得业务方信任的必备能力。

目录
  1. 可视化演示
  2. 概念内涵
  3. 原理机制
  4. 核心算法
  5. 性能特性
  6. 优化策略
  7. 工程实践
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态展示反事实解释的生成过程:从原始输入和预测出发,搜索最小特征变更路径,生成反事实样本使预测翻转,对比展示原始与反事实的特征差异和距离。

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

反事实解释 原始输入/预测 反事实变更 未变更特征 argmin d(x,x\') s.t. f(x\') != f(x) 最小特征变更实现预测翻转

概念内涵

夜深人静,小反盯着手里的“人生复读机”发呆。这台机器模拟了一位AI考官:它看完你的简历、收入、工作年限,然后冷漠地吐出两个字:“拒绝”。小反不想追问“为什么拒绝我”——那是传统特征重要性解释能回答的问题。他真正想问的是:“如果重来一次,我只需要改变哪几项,就能从'拒绝'变成'批准'?”

这个“如果重来”的追问,正是反事实解释的核心。它不像LIME或SHAP那样告诉你“哪些特征重要”,而是直接给你一个“新的人生剧本”:把工作年限从2年改成5年,其他一切照旧,AI就会点头。这个新剧本被称为反事实样本(counterfactual example)。从技术上说,给定原始输入 \(x_0\)(被拒申请)和黑箱模型 \(f(\cdot)\)(AI考官),反事实解释要找一个新输入 \(x'\),使得模型预测翻转,同时改动尽量小——这是一个约束优化问题:

\[

x' = \arg\min_{x} \; d(x, x_0) + \lambda \cdot \mathcal{L}(f(x), y')

\]

其中 \(d(x, x_0)\) 衡量改动幅度,\(\mathcal{L}(f(x), y')\) 惩罚“预测尚未达到目标类别 \(y'\)”的程度。

1. 反事实样本 \(x'\):这是我们要找的目标点,对应平行世界中“翻盘后的你”——例如工作年限从 2 年改成 5 年的那份新简历。

x′x'

2. 求解操作 \(\arg\min_x\):在输入空间里遍历所有可能的候选,选出让后面两项相加最小的那一个。

arg⁡min⁡x\arg\min_x

3. 距离项 \(d(x, x_0)\):度量候选与原始输入的差异,差异越小,改动越少;这是“最小改动”原则的数学化身。

d(x,x0)d(x, x_0)

4. 目标损失项 \(\mathcal{L}(f(x), y')\):模型预测与目标标签的差距。若 \(f(x)\) 还没翻转到 \(y'\),这一项就大,逼迫候选向目标类靠近。

L(f(x),y′)\mathcal{L}(f(x), y')

5. 权衡系数 \(\lambda\):在“改动小”与“翻盘准”之间调节优先级。\(\lambda\) 大则更强调必须翻盘,\(\lambda\) 小则更惜字如金、少改为上。

λ\lambda

所以,反事实解释就是小反的“平行世界导航仪”:它不解释你为何落榜,而是直接把你带到那个“改一点就翻盘”的世界入口。对比“为什么”型解释,这种“怎么做”型解释更贴近人性的需求——解释过去,不如指导未来。

原理机制

小反第一次使用复读机时,随手把“星座”从狮子座改成摩羯座,AI考官依然摇头拒绝。他恍然大悟:不是所有改动都有效。模型压根没把星座当作决策依据,改它等于对牛弹琴。想找到真正有效的改动,必须先摸清模型的“决策机关”藏在哪些变量上。

在因果推断中,反事实被形式化为一种“干预 + 推理”的思维实验:假设我把某个变量强行变成另一个值,世界会输出什么? Pearl 把因果认知分为三层:看见(seeing)、干预(doing)、想象(imagining)。反事实解释站在最高层“想象”——它并不直接探测真实世界,而是把模型当作世界规律的代表,在“改动后的虚拟世界”中完成推理。

严谨的表述来自结构因果模型(SCM)。给定外生变量 \(u\)(样本的隐藏属性)与干预 \(x\),反事实结果定义为:把原结构 \(M\) 中变量 \(X\) 固定为 \(x\) 得到修改后的模型 \(M_x\),再按 \(M_x\) 求解 \(Y\):

\[

Y_x(u) = Y_{M_x}(u)

\]

1. 外生变量 \(u\):代表样本自身的“出厂设定”——如一个人的潜在信用习惯、隐性健康基线,这些是无法从输入直接观测的底色。

uu

2. 干预值 \(x\):我们假设强加的新条件,比如“把负债率降到 30% 以下”;它对应平行世界中你主动改变的那一枚棋子。

xx

3. 修改后模型 \(M_x\):把结构方程中 \(X\) 的生成机制移除、替换为常数 \(x\),得到一架“改了规则的世界机器”。

MxM_x

4. 反事实结果 \(Y_x(u)\):在同一外生变量 \(u\) 下,将这架新机器运行到底所得到的结局——“如果当初这么做,结果就是它”。

Yx(u)Y_x(u)

5. 等号的含义:反事实不是简单的条件概率,而是“改写规则后重新推演”;这使它区别于统计相关性,迈入了因果的领地。

Yx(u)=YMx(u)Y_x(u) = Y_{M_x}(u)

这解释了为什么反事实解释与“平均因果效应”不同:因果效应问“群体平均差多少”,反事实问“特定个体改一处会怎样”。小反最终通过“由果溯因”摸到了模型真正依赖的特征路径——一场沿着决策边界倒着寻找“翻盘旋钮”的侦探游戏,就这样拉开了帷幕。

核心算法

知道了原理,小反开始系统探索如何在平行世界中导航。他手上有三种办法:闭眼乱撞(随机搜索)、顺坡滑草(梯度下降)、翻开地图穷举路口(枚举约束)。在大多数深度模型场景中,滑草是最高效的。

以梯度引导反事实生成(Gradient-Guided Counterfactual Generation)为例:把目标写成损失函数,然后对输入求梯度——“往哪个方向微调,能让预测更快逼近目标类别?”这个方向正是从失败滑向成功的山坡方向,迭代公式如下:

\[

x_{t+1} = x_t - \eta \nabla_x \mathcal{L}(x_t), \qquad

\mathcal{L}(x) = \lambda (f(x) - y')^2 + d(x, x_0)

\]

1. 第 \(t\) 步候选 \(x_t\):探索途中的临时剧本,起初等于原始失败样本 \(x_0\)。

xtx_t

2. 步长 \(\eta\):每次沿山坡滑出多远。太大容易冲过头,太小则磨磨蹭蹭走不到翻盘点。

η\eta

3. 梯度 \(\nabla_x \mathcal{L}(x_t)\):损失函数对输入的一阶导,指向“让当前损失下降最快”的方向,即翻盘的捷径。

∇xL(xt)\nabla_x \mathcal{L}(x_t)

4. 负号与更新:沿梯度负方向迈步,逐步把候选拉向目标类别;这就是“逆行”——从输出反推输入的修改方向。

xt+1=xt−η∇xL(xt)x_{t+1} = x_t - \eta \nabla_x \mathcal{L}(x_t)

5. 平方偏差 \((f(x) - y')^2\):惩罚“预测离目标还差多远”,它在越过决策边界前持续施加拉力。

(f(x)−y′)2(f(x) - y')^2

6. 距离正则 \(d(x, x_0)\):如影随形的“橡皮筋”——一旦改动过大,它就把候选拽回原处,保证最后给出的建议足够克制。

d(x,x0)d(x, x_0)

如果模型不可微(如梯度提升树),梯度项可用代理梯度或数值差分近似;若特征带有离散约束(学历只有几档),每次迭代后还需做“取整投影”。搜索枚举虽然朴素,但在低维或小样本场景是扎实的基准方法。选哪种“山路”,取决于你手里那张“地图”是什么材质:深度学习走梯度法,树模型走代理梯度或搜索,各得其所。

性能特性

小反用复读机刷出几百个平行世界剧本,开始挑花眼:有的剧本来回要改七个特征,有的只改一个却荒唐透顶(把年龄改成 −3 岁),还有的剧本每次生成都变——同一个失败者问两次,答案竟然南辕北辙。于是他总结出衡量剧本质量的三个标准。

稀疏性:改动特征越少越好。“每天多复习 1 小时”显然比“换城市 + 换专业 + 换作息”更具执行力。可行性:改动后的特征值必须在语义上合法——年龄不能为负,学历必须落在合法枚举里。稳定性:输入稍有扰动,建议不应剧烈变化;若模型在样本附近抖动,生成的剧本也随之翻覆,用户将难以信赖。

这些性质可以浓缩为加权距离公式与稀疏度指标:

\[

d_w(x, x') = \sum_{i=1}^{n} w_i \, \delta(x_i, x'_i), \qquad

\text{sparsity}(x') = \sum_{i=1}^{n} \mathbf{1}[x'_i \neq x_{0,i}]

\]

其中连续特征取 \(\delta(a,b) = (a-b)^2\),离散特征取 \(\delta(a,b) = \mathbf{1}[a \neq b]\)。

1. 特征权重 \(w_i\):表示第 \(i\) 个特征在业务上的重要程度或不可变性——年龄权重极大,意味着几乎不允许改动。

wiw_i

2. 差异度量 \(\delta(x_i, x'_i)\):逐维度地比较“原来值”与“改动后值”,连续用平方差、离散用是否不同。

δ(xi,xi′)\delta(x_i, x'_i)

3. 加权求和 \(\sum_{i=1}^n w_i \delta_i\):把每个维度的痛点加权汇总,距离越小,解释越“克制”。

∑i=1nwi δ(xi,xi′)\sum_{i=1}^{n} w_i \, \delta(x_i, x'_i)

4. 指示函数 \(\mathbf{1}[\cdot]\):条件成立记 1,不成立记 0;用于数出“到底动了几列”。

1[xi′≠x0,i]\mathbf{1}[x'_i \neq x_{0,i}]

5. 稀疏度 \(\text{sparsity}(x')\):被改动的特征个数。该值越小,用户越容易照着执行。

sparsity(x′)=∑i=1n1[xi′≠x0,i]\text{sparsity}(x') = \sum_{i=1}^{n} \mathbf{1}[x'_i \neq x_{0,i}]

工程上,这些特性不会凭空出现:在损失中加 L1 正则强制稀疏;在投影步骤把连续结果投影回合法区间;用多次随机种子生成并投票,选出多数派作为稳定答案。小反终于明白,好的导航仪不仅要“能到达”,还得“到达得漂亮”——性能特性就是给导航仪装上的质检仪。

优化策略

想让导航仪更快、更准,小反学会了四招组合拳。第一招,就近起步:与其从失败的自己出发绕远路,不如先找到一个“已被批准的近邻”,从它脚下开始滑草——迭代次数能省一半以上。

第二招,加权度量:把特征的业务权重塞进距离尺子。“重要的少改,次要的更能容忍”,这让反事实贴近业务语义,而不是几何上最近、语义上荒唐。第三招,离散台阶:连续优化算出“工作年限 2.3 年”?取整成 2 年或 3 年——把连续解投影回合法离散空间。第四招,近似加速:用线性模型或量化索引去近似黑箱,把大象级的深度网络变成一张可快速求导的小地图。

其中“就近起步”可以写成约束下的最近邻选择:

\[

x_{\text{init}} = \arg\min_{z \in \mathcal{N}(x_0)} d(z, x_0) \quad \text{s.t.} \quad f(z) = y'

\]

1. 近邻集合 \(\mathcal{N}(x_0)\):原始样本附近的候选池,比如 K 近邻或聚类簇内样本——“距离成功者最近的几号位”。

N(x0)\mathcal{N}(x_0)

2. 约束 \(f(z) = y'\):候选近邻的模型预测必须已经是目标类,即“近邻必须是已经上岸的人”。

f(z)=y′f(z) = y'

3. 距离最小化 \(d(z, x_0)\):在所有已上岸的近邻中挑离你最近的那个,作为优化起点。

d(z,x0)d(z, x_0)

4. 选择结果 \(x_{\text{init}}\):这个“就近起步点”是梯度的优质锚点,让后续迭代少走冤枉路。

xinitx_{\text{init}}

这四招的本质,是在“探索质量”与“计算成本”之间做权衡:初始化减少路径,加权距离减少绕路,约束避免撞墙,近似降低单次开销。小反把组合拳集成进复读机后,生成一份翻盘处方的时间从 30 秒降到 0.3 秒——老板当场拍板:上线。

工程实践

导航仪要量产,现实远比实验室复杂。首先是不可变特征:性别、出生日期、种族绝不能出现在改动建议里。一个负责任的信贷解释器必须把这类特征锁死为“不动项”。其次是鲁棒性与合规:反事实建议若被恶意套用(反复探测信用审批边界),可能被用于欺诈;而 GDPR 等法规恰恰又要求在自动决策中向用户提供“具体修改建议”——反事实解释成了合规的助推器。

真实的场景已经落地:某消费金融公司在每份拒绝通知中附上“将月收入提升至 1.2 万元、将负债比降至 35% 以下”的可执行建议;医疗 AI 在建议 ICU 转入时,附带条件判定“若无创通气能维持血氧 ≥94%,则无需转入”。这类建议好不好,需要用有效性指标持续度量:

\[

\text{Validity} = \frac{1}{N}\sum_{i=1}^{N} \mathbf{1}[f(x'_i) = y'_i]

\]

1. 样本总数 \(N\):被评估的反事实条数,比如一个月内推送的全部翻盘建议。

NN

2. 单条判断 \(\mathbf{1}[f(x'_i) = y'_i]\):检查第 \(i\) 条建议是否真的让模型翻到了目标类,命中记 1、未中记 0。

1[f(xi′)=yi′]\mathbf{1}[f(x'_i) = y'_i]

3. 平均求和 \(\frac{1}{N}\sum\):把全部命中次数换算成比例,得到整体“处方有效率”。

1N∑i=1N\frac{1}{N}\sum_{i=1}^{N}

落地要点可以总结为五条:产出前锁定特征白名单与黑名单;多次采样取稳定版本;与领域专家共同校准语义可行性;上线后持续监控有效性——数据漂移会让老处方失效;最后,把解释与人的判断权交给用户,避免“自动驾驶式”决策。小反的导航仪如今不仅给用户一张“翻盘处方”,还让冷冰冰的拒绝电话变得有温度。

AI 应用场景

银行信贷审批:给拒绝信附上“翻盘处方”

阶段:模型解释与用户沟通

解决的问题:传统拒绝通知只有“综合评分不足”这类空洞话术,客户投诉率高。反事实解释自动生成“具体改什么才能获批”的可执行建议,把解释从“判罚书”变成“辅导书”。

具体案例:某消费金融公司为每位被拒用户生成多条反事实候选,挑选“改动特征少、语义最可行”的一条推送给用户。上线后人工客诉率下降 23%,被拒用户的复贷转化率提升约 12%,客服压力显著缓解。

医疗辅助决策:向患者家属解释“为什么这样治”

阶段:临床辅助诊断与知情同意

解决的问题:医生很难向家属解释“AI 为何建议转入 ICU”,容易引发焦虑与不信任。反事实解释能为医生提供条件式话术,例如“若无创通气能把血氧维持在 94% 以上,则不需要转入”。

具体案例:某三甲医院试点将反事实解释嵌入 ICU 分诊系统,医生与家属沟通时间平均缩短 40%,对 AI 建议的接受度显著上升。所有生成结果经过主治医生复核后才对外展示。

Python 演示

python39 行
import numpy as npfrom sklearn.linear_model import LogisticRegression  def sigmoid(z):    return 1.0 / (1.0 + np.exp(-z))  def generate_counterfactual(model, x0, target=1, lam=0.5, lr=0.08, iters=200):    x = x0.astype(float).copy()    w, b = model.coef_[0], model.intercept_[0]    for _ in range(iters):        logit = w @ x + b        prob = sigmoid(logit)        grad = 2 * lam * (prob - target) * prob * (1 - prob) * w        grad += 2 * (x - x0)        x -= lr * grad    return x  def main():    rng = np.random.default_rng(42)    X = rng.normal(size=(200, 2))    X[:, 0] = X[:, 0] * 2 + 5    X[:, 1] = X[:, 1] + 3    y = (X[:, 0] + 1.5 * X[:, 1] > 10.5).astype(int)     model = LogisticRegression()    model.fit(X, y)     rejected = X[y == 0][0]    print("原始样本:", rejected, "预测:", model.predict([rejected])[0])    cf = generate_counterfactual(model, rejected)    print("反事实样本:", cf, "预测:", model.predict([cf])[0])    print("特征改动:", np.round(cf - rejected, 4))  if __name__ == "__main__":    main()
目的:演示反事实解释中最核心的梯度引导法——通过不断微调输入特征,让被拒样本“滑过”模型的决策边界,最终拿到一份最小改动翻盘处方。
  1. w, b = model.coef_[0], model.intercept_[0]取出线性模型的系数与截距,这是计算梯度的“路标”。
  2. grad = 2 * lam * (prob - target) * prob * (1 - prob) * w对“预测偏差”求导:若离目标还远,就把梯度拉向目标方向。
  3. grad += 2 * (x - x0)加上“最小改动”的橡皮筋拉力,防止建议跑太远。
  4. x -= lr * grad沿梯度负方向迈一小步,向翻盘点逼近。
  5. rejected = X[y == 0][0]挑一个被拒用户作为起点,模拟真实反事实生成场景。
  6. print("特征改动:", np.round(cf - rejected, 4))输出每个特征需要变多少,正是用户最关心的“处方明细”。

常见误区

误区模型说“把工作年限从 2 年改到 5 年就能获批”,那我照着做,现实中就一定能获批。

正解反事实解释只是黑箱模型局部的“输入-输出翻转点”,它揭示的是模型学到的统计决策边界,不等于真实世界中的因果效应。就像复读机告诉你“改星座没用、改努力有用”,这只是模型“以为”的规律。真实世界中可能还存在模型没见过的干预变量。业务上应将其视为“模型给出的建议”,而非“世界的因果铁律”。

为何常见:人天然会把“如果当初做了 X 就能有 Y”理解成因果叙事,而反事实解释完美复刻了这种句式,极容易让人误以为是因果结论。

误区算法找到的最近翻盘点,一定是最贴心的建议。比如把“信用分”从 620 改到 630,距离最短、改动最小,为何不给用户这个处方?

正解“改动小”只是几何意义上的近,不代表语义上合理。若某个特征权重设置不当,模型可能给出“把年龄降到 25 岁”这种荒谬建议。合理的反事实必须同时满足稀疏性、可行性与稳定性;几何距离只是第一步,后续的合法性投影与业务校验缺一不可。

为何常见:最小化距离是反事实生成的默认目标函数,初学者容易把“数学上的最小化”等同于“业务上的最优化”。

误区LIME、SHAP 和反事实解释都是解释黑箱模型的方法,它们应该可以互相替换。

正解LIME 和 SHAP 回答的是“哪些特征对本次预测贡献大”(归因式解释),属于“为什么”范畴;反事实回答的是“改哪些、怎么改才能翻盘”(建议式解释),属于“怎么办”范畴。就像体检报告告诉你“血压偏高是主要风险因素”,和医生说“每天快走 30 分钟血压就能降下来”,前者是归因、后者是处方——两者互补却不相同。

为何常见:主流教程把它们都归到“可解释 AI”大项下,容易让人忽略问题形式与输出形态的巨大差异。

误区分析系统给出反事实处方后,直接把处方展示给用户,因为模型已经“确保”可行性。

正解很多反事实生成算法只做数值约束,没考虑现实中的特征依赖与业务红线。例如“把月收入提高 50%”在模型里只是一个数字,现实中却涉及行业、年限、技能等复杂因素。工程落地必须对输出做二次校验:特征是否在合法域内、是否与不可变特征列表冲突、是否通过领域专家复核。否则,一条几何漂亮但现实荒谬的建议反而会摧毁用户信任。

为何常见:算法评测常用“有效性 + 距离”这类纯数值指标,容易给人“模型输出即合理”的错觉。

面试题

Q1. 反事实解释的核心目标是什么?

单选题 · easy

  • A.找到离输入最远且预测翻转的样本
  • B.找到离输入最近且预测翻转的样本← 正确答案
  • C.找到训练集上损失最小的样本
  • D.找到所有输入样本的平均特征

答案:B。反事实解释追求“最小改动 + 翻盘”,即在输入空间中寻找一个距原始样本尽可能近、但模型预测翻转的样本。它惩罚改动幅度,因此不是越远越好,更不是求平均。

Q2. “最小改动”原则解决的用户痛点是什么?

单选题 · easy

  • A.用户想看模型内部权重
  • B.用户想以最低成本改变结果← 正确答案
  • C.用户想获得全局数据分布
  • D.用户想了解模型训练时间

答案:B。最小改动意味着建议稀疏且可执行,用户只须调整一两项特征就可能翻转结果,成本最低。这正对应“每天多复习一小时”优于“换城市换专业”的直觉。

Q3. 下列哪些属于反事实解释的质量指标?

多选题 · mid

  • A.稀疏性(改动特征数少)← 正确答案
  • B.可行性(语义合法)← 正确答案
  • C.稳定性(扰动下保持一致)← 正确答案
  • D.模型参数量大小

答案:ABC。稀疏性、可行性、稳定性是评判反事实解释的三类核心指标;参数量描述模型本身规模,与解释质量无关。

Q4. 梯度引导法生成反事实时,距离项的作用是什么?

单选题 · mid

  • A.加快模型收敛速度
  • B.约束候选样本改动尽量小← 正确答案
  • C.提高模型预测精度
  • D.删除不重要的特征

答案:B。目标函数中的距离项像一根“橡皮筋”,候选样本偏离原始输入越远,受到的拉力越大,从而保证最终建议保持克制,符合最小改动原则。

Q5. 关于反事实推理与因果关系,下列说法正确的是?

多选题 · mid

  • A.反事实推理需要“干预”这样的因果概念支持← 正确答案
  • B.反事实结果可以直接等同于真实平均因果效应
  • C.结构因果模型(SCM)能够表达反事实← 正确答案
  • D.反事实推理与因果完全无关

答案:AC。反事实基于“假设干预后世界会怎样”的推理,SCM 中的 \(Y_x(u)\) 正是标准表达;但它针对特定个体与设定,不能与群体平均因果效应画等号。

Q6. “模型逆行”在反事实生成中指什么?

单选题 · mid

  • A.对模型做反向传播更新权重
  • B.从预测出发逆推输入的修改方向← 正确答案
  • C.把模型超参数调回初始值
  • D.删除模型的隐藏中间层

答案:B。反事实生成把损失对输入求梯度,得到“往哪个方向微调输入能更快翻盘”,这是从输出逆推输入的修改方向,而非训练时对权重求梯度。

Q7. 处理离散特征(如学历、年龄段)时,常用做法是什么?

单选题 · hard

  • A.直接删除所有离散特征
  • B.对连续化结果投影到合法离散值← 正确答案
  • C.把离散特征当作连续特征处理
  • D.固定所有离散特征完全不动

答案:B。梯度法天然适合连续空间,但学历这类离散特征需要把连续优化结果取整或映射到合法枚举值,否则会出现“学历 1.7 档”这种无意义建议。

Q8. 反事实解释工程落地时,哪些约束必须被考虑?

多选题 · hard

  • A.年龄等不可变特征应锁定为不可修改← 正确答案
  • B.生成建议需通过可行性校验← 正确答案
  • C.每份解释都必须改动至少三个特征
  • D.需满足 GDPR 对自动决策解释权的要求← 正确答案

答案:ABD。不可变特征要进入黑名单;可行性校验保证建议语义合法;GDPR 等法规要求提供具体修改建议。改动特征数并非越多越好,C 明显违背最小改动原则。

Q9. 为什么“欧氏距离最近”的反事实不一定是用户最易执行的解释?

单选题 · extreme

  • A.欧氏距离计算复杂度太高
  • B.数值近但语义改动可能荒谬← 正确答案
  • C.欧氏距离只适用于高维空间
  • D.最小距离反事实本质上不存在

答案:B。几何距离忽略业务语义。比如把“居住城市”数值化后改动 0.1 在几何上很近,但对应“搬到 500 公里外的城市”却是巨大的人生变动。加权距离与可行性约束正是为此而生。

Q10. 当信贷模型拒绝一位申请人时,反事实解释最可能的输出是?

单选题 · easy

  • A.一份被拒原因的因果证明书
  • B.把工作年限从 2 年改为 5 年的翻盘建议← 正确答案
  • C.模型内部所有特征权重列表
  • D.所有历史申请人的预测结果汇总

答案:B。反事实解释的输出形态是“具体怎么改、从什么值改成什么值”,它回答“如何翻盘”而非“为何被拒”。改动年限就是典型的最小改动处方。