想象你被派往一座从未有人绘制过地图的陌生城市。你的任务不是走遍每一条街,而是根据市民的口述和零星的交通记录,反推出这座城市的路网结构——哪些路口之间有路、每条路是单行道还是双行道、修一条新路会对整个城市的通勤产生什么影响。这个“反推”的过程,就是因果发现;而你交出的地图好不好,就需要一套“评审标准”来打分。 这就是因果发现评估指标的用武之地。它们是四把不同的尺子:骨架F1分数检查路网本身有没有画错,方向准确率核查单行道的箭头方向,结构汉明距离(SHD)统计你的地图和真实地图需要改动多少笔才能重合,而结构干预距离(SID)则追问“如果我在A路口封路,B区域的流量变化估算得准不准”。四把尺子各有侧重,合在一起,才构成一份完整的评估报告。

岗位关联

对AI从业者而言,掌握这几把尺子,意味着你能严谨地判断一个因果发现模型是“真学到了规律”还是“只是碰巧蒙对”,从而在医疗、金融、推荐系统等高风险场景中,为模型的可信落地提供依据。

目录
  1. 可视化演示
  2. 骨架F1分数:道路网络的存在性检验
  3. 方向准确率:单行道的方向校验
  4. 结构汉明距离:地图修正的编辑次数
  5. 结构干预距离:政策干预的效应偏差
  6. 评估维度体系:三方会审的质量报告
  7. 可信AI应用:从尺寸到安全驾驶
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示骨架F1分数(TP/FP/FN分类)、结构汉明距离SHD(缺边/多边/方向错误)、结构干预距离SID(干预分布差异)三种评估指标,点击按钮切换。

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

骨架F1分数 TP:预测边与真实骨架边匹配 FP:预测但不存在,FN:存在但未预测 F1=2·TP/(2·TP+FP+FN) 骨架F1仅评估无向边集合正确性

骨架F1分数:道路网络的存在性检验

想象你刚到那座陌生的城市,第一件事是确认“哪些地方之间有路”。你不用管单行道还是双行道,只需画一张“哪两个路口有连接”的草图。骨架F1分数做的正是这件事:它只看算法找出的边(连接)在多大程度上与真实边集吻合,完全忽略边的方向。

在技术层面,因果图被简化为无向图,只保留变量之间的连接关系。设真图的边集为 $E$,算法输出的边集为 $\hat{E}$,则真阳性(TP)是两条边集中都存在的边,假阳性(FP)是算法多画的边,假阴性(FN)是算法漏画的边。基于这三个数字,精确率与召回率被定义为:

精确率回答“你画的边有多少是真实存在的”,召回率回答“真实的边你找回了多少”。但单独看任何一个都有偏颇,于是用调和平均把它们合成一个数:

回到城市的比喻:骨架F1就像道路巡检员复核你的路网草图——它不关心单行道方向,只关心“你标注的这条路真实存在吗?遗漏了哪条小路?”如果F1接近1,说明你对城市路网的拓扑结构已经心中有数,但这还远不够,因为真正开车上路时,方向同样致命。

P=TPTP+FP,R=TPTP+FNP = \frac{TP}{TP + FP}, \quad R = \frac{TP}{TP + FN}
F1=2×P×RP+R\displaystyle F_1 = \frac{2 \times P \times R}{P + R}
F1是精确率和召回率的调和平均,只有当两者都高时F1才高,惩罚“偏科”的算法。
  1. 真阳性(TP)真实图与估计图都包含的边,即算法正确找回的连接。
    TP=∣E∩E^∣TP = |E \cap \hat{E}|
  2. 假阳性(FP)估计图中存在、真实图中不存在的边,即算法虚构的道路。
    FP=∣E^∖E∣FP = |\hat{E} \setminus E|
  3. 假阴性(FN)真实图中存在、估计图中缺失的边,即被漏掉的道路。
    FN=∣E∖E^∣FN = |E \setminus \hat{E}|
  4. 精确率(P)在算法声称存在的边中,真实存在的比例。
    P=TPTP+FPP = \frac{TP}{TP + FP}
  5. 召回率(R)在真实存在的边中,被算法找回的比例。
    R=TPTP+FNR = \frac{TP}{TP + FN}
  6. 调和平均(F1)对精确率与召回率取调和平均,数值趋向两者中较小的那个。
    F1=21P+1R\displaystyle F_1 = \frac{2}{\frac{1}{P} + \frac{1}{R}}

方向准确率:单行道的方向校验

地图上的路都画对了,但如果你把单行道的箭头方向标反,司机会在一条不存在的反向路上逆行,酿成事故。方向准确率评价的正是这个环节:在已经确认存在的边中,算法判断出的因果方向与真实方向一致的比例。

方向准确率的定义依赖一个有向边集合。设 $E$ 为真图中的有向边集合,$\hat{E}$ 为估计图中的有向边集合,两者骨架相同的那部分公共边集为 $S = skeleton(E) \cap skeleton(\hat{E})$。方向准确率则是在这组公共骨架上计算方向完全一致的边的比例:

其中 $\mathbb{1}[\cdot]$ 是指示函数,条件成立取1,否则取0。直觉上,方向准确率衡量的是“在所有找对连接的道路中,有多少条箭头方向也没标错”。

在真实场景中,方向的判定往往依赖 V结构(碰撞结构),即 $X \rightarrow Y \leftarrow Z$ 这种形态。它就像城市里的“丁字路口”,是唯一能纯靠数据敲定某些箭头方向的路标。如果你的算法能在图中准确识别V结构,方向准确率通常就有了坚实的地基。

Adir=1∣S∣∑e∈S1[dirG(e)=dirG^(e)]A_{\text{dir}} = \frac{1}{|S|} \sum_{e \in S} \mathbb{1}\left[ \text{dir}_G(e) = \text{dir}_{\hat{G}}(e) \right]
方向准确率只对“骨架正确”的边计算方向匹配比例,它默认连接关系已经找对,再检验方向判断的质量。
  1. 公共骨架集合真实图和估计图去掉方向后相交的边集。
    S=skeleton(E)∩skeleton(E^)S = skeleton(E) \cap skeleton(\hat{E})
  2. 方向比较对任意公共边 $e$,分别取其真实方向与估计方向。
    dirG(e) vs dirG^(e)\text{dir}_G(e) \text{ vs } \text{dir}_{\hat{G}}(e)
  3. 指示函数计数方向一致则计1,否则计0。
    1[dirG(e)=dirG^(e)]\mathbb{1}\left[ \text{dir}_G(e) = \text{dir}_{\hat{G}}(e) \right]
  4. 比例归一化求和后除以公共边总数。
    Adir=方向正确的边数∣S∣A_{\text{dir}} = \frac{\text{方向正确的边数}}{|S|}

结构汉明距离:地图修正的编辑次数

现在我们有了两把尺子:一把看连接,一把看方向。但有人会问:“我的地图和真实地图到底差几笔?”结构汉明距离(SHD)回答的就是这个问题——它计算从一张有向图变成另一张有向图,至少需要增加或删除多少条边。

SHD的定义非常直观:真实图 $G$ 与估计图 $\hat{G}$ 的边集分别为 $E$ 与 $\hat{E}$,那么两者之间的差异就是“真实图里有但估计图里没有的边”加上“估计图里有但真实图里没有的边”:

注意,这里的“边”是有向边,方向不同也算一条不同的边。SHD为0意味着两张图的所有有向边完全一致,这是最理想的情况;SHD越大,说明需要改动的笔画越多,地图质量越差。

SHD与骨架F1是一对互补的搭档。骨架F1把“该有边却漏了”和“不该有边却多画了”都揉进一个0到1的分数里,而SHD则告诉你具体的编辑次数。打个比方:F1像考试得分,告诉你“大概好不好”;SHD像批改痕迹,告诉你“具体错了几笔”。在论文报告中同时给出两者,读者才能既看总体水平,又知道改进空间。

SHD(G,G^)=∣E∖E^∣+∣E^∖E∣SHD(G, \hat{G}) = |E \setminus \hat{E}| + |\hat{E} \setminus E|
SHD是一种编辑距离视角,把评估问题转化为“最少改几次才能把估计图变成真实图”,越少越好。
  1. 真实图独有边真实图中存在但估计图中找不到的边,属于遗漏。
    E∖E^E \setminus \hat{E}
  2. 估计图独有边估计图中画出但真实图中不存在的边,属于虚构。
    E^∖E\hat{E} \setminus E
  3. 求和得距离两部分的并集元素总数,就是两张图的结构差异量。
    ∣E∖E^∣+∣E^∖E∣|E \setminus \hat{E}| + |\hat{E} \setminus E|

结构干预距离:政策干预的效应偏差

如果说前三把尺子都在“看图改图”,那么结构干预距离(SID)则代表更高维度的审核:它不关心图的笔墨,只关心“如果我在某个路口实行交通管制,对另一个区域的通行分布影响,你的地图算得准吗?”在因果推断中,这种“假如强制改变某个变量的取值”就是干预(do操作)。

SID的核心思想是:统计所有“干预一对节点”的场景,计算依据真实图得到的干预后分布与依据估计图得到的干预后分布有多少不一致。形式化地说,对任意两个不同节点 $i$ 和 $j$,在真实图 $G$ 下施加干预 $do(X_i = x)$ 得到的 $X_j$ 分布为 $P_G(X_j \mid do(X_i))$,在估计图 $\hat{G}$ 下同样计算一个干预分布,两个分布一致则无误差,否则记一次误差。SID定义为:

SID越大,说明你的地图在“预测干预效果”这件事上偏差越大,哪怕骨架和方向都对,模型给出的因果效应也可能错得离谱。

回到城市的比喻,SHD只关心地图的线画得对不对,SID则关心用地图做政策推演时会不会翻车。如果你根据错误的方向推演“在A路口禁行会让B区拥堵缓解30%”,结果实际上拥堵加重了,这就是SID揭示的残酷真相——结构看起来差不多,效应却天差地别。

SID(G,G^)=∑i≠j1[PG(Xj∣do(Xi))≠PG^(Xj∣do(Xi))]SID(G, \hat{G}) = \sum_{i \neq j} \mathbb{1}\left[ P_G(X_j \mid do(X_i)) \neq P_{\hat{G}}(X_j \mid do(X_i)) \right]
SID从干预分布的角度量化因果效应误差,是比结构差异更严格、更贴近业务价值的评估尺度。
  1. 节点对遍历对所有 $i \neq j$ 的变量组合逐一检查。
    {(i,j)∣i≠j}\{(i, j) \mid i \neq j\}
  2. 干预分布计算在真实图上施加 $do(X_i=x)$,得到 $X_j$ 的分布。
    PG(Xj∣do(Xi))P_G(X_j \mid do(X_i))
  3. 估计图干预分布在估计图上施加同样的干预,得到对应的分布。
    PG^(Xj∣do(Xi))P_{\hat{G}}(X_j \mid do(X_i))
  4. 不一致计数分布不同则计一次,累加所有组合。
    ∑i≠j1[PG(Xj∣do(Xi))≠PG^(Xj∣do(Xi))]\sum_{i \neq j} \mathbb{1}\left[ P_G(X_j \mid do(X_i)) \neq P_{\hat{G}}(X_j \mid do(X_i)) \right]

评估维度体系:三方会审的质量报告

城市地图质量评估不能只靠一把尺子。骨架F1覆盖拓扑正确性,方向准确率覆盖方向正确性,SHD与SID分别从编辑距离和效应误差两个角度补充信息。这就构成了一个“三维评估”框架:拓扑维度(边是否存在)、方向维度(箭头是否正确)、效应维度(干预后分布是否一致)。

三维评估体系的核心在于:每个指标回答不同问题,无法互相替代。骨架F1高但方向准确率低,意味着你找到了所有道路但箭头全画反了;SHD很小但SID很大,意味着图和真图只差一两笔,但恰好那关键的一笔改变了干预方向,导致效应估算崩溃。因此,实验报告中常见做法是把四类指标并列给出,再结合具体任务决定侧重——如果目标是发现变量关系,重点看骨架F1;如果目标是指导干预决策,重点看SID。

在实验设计上,研究者通常会先在合成数据上验证算法(因为合成数据的真图已知,可以精准计算全部指标),再到真实数据集上用启发式规则或专家知识近似评估。这种“先模拟后实测”的策略,类似于飞行员先在飞行模拟器里被考官全方位打分,再上真机试飞。

可信AI应用:从尺寸到安全驾驶

当AI进入医疗、金融、自动驾驶等高风险领域,“评估指标”就不再只是论文里的表格,而是可信AI的地基。一个只做相关性预测的模型,无法回答“如果我停用这种药会怎样”;但一个经过严格因果评估的模型,可以给出“停用该药后病情恶化概率上升15%”的可靠估计。这背后依赖的,正是骨架F1、方向准确率、SHD与SID层层把关。

具体来说,可信AI系统需要三样东西:决策可靠性——因果发现算法输出的结构必须经得起SID的检验,确保基于它的干预建议不会南辕北辙;模型可解释性——通过方向准确率验证因果路径,让“模型为什么这样决策”拥有透明的因果链解释;因果与预测结合——在推荐系统、风控模型中加入反事实推理,回答“如果当时采取了不同行动,结果会怎样”。

在这座由数据构建的城市中,评估指标就是交通管理局的定期巡检:只有通过全部检查的地图,才能被贴在自动驾驶汽车的中控屏上。这也是为什么因果发现评估指标被视为构建可信AI基础设施的核心环节——没有统一量尺,就没有安全上路。

AI 应用场景

药物靶点筛选中的因果结构验证

阶段:因果结构学习 → 因果效应验证

解决的问题:传统药靶筛选依赖基因表达相关性,但相关性无法区分“该基因导致疾病”与“疾病导致该基因表达变化”。AI通过因果发现算法从海量组学数据中推测基因调控网络,再用骨架F1与方向准确率评估网络结构是否可靠,确保优先验证的靶点真正处于致病通路上游。

具体案例:某药企用深度因果发现模型从单细胞RNA测序数据中推断了癌细胞耐药相关基因网络,使用已知通路数据库作为近似真实图,计算骨架F1达到0.86、方向准确率0.79,据此筛出3个高置信靶点;后续湿实验证实其中2个确实影响药物应答。

金融风控中的反事实归因

阶段:因果效应评估 → 决策支持

解决的问题:银行想知道“如果客户没有收到营销短信,是否还会逾期”,传统机器学习只能给出“逾期概率”,无法回答反事实问题。AI用因果图刻画收入、负债、消费习惯与逾期之间的因果结构,再用SID评估干预分布误差,避免模型高估短信的因果效果。

具体案例:某消费金融公司对10万用户构建了个性化因果图,SHD从平均7.2降至2.1,SID下降约40%后,基于反事实推断的营销策略使客户响应率提升22%,同时不良率下降3个百分点。

推荐系统的因果纠偏

阶段:因果结构应用 → 效果评估

解决的问题:推荐系统常受“热门偏差”困扰,用户看到某个商品仅仅因为系统推荐了它,而非真实偏好。AI建立用户兴趣、曝光、点击之间的因果图,用方向准确率检验“曝光→点击”的方向假设,再通过干预仿真评估去偏策略的效果。

具体案例:某视频平台在推荐排序中引入因果纠偏模块,用SID对比纠偏前后“曝光→播放”的干预效应差异,将内容生态多样性提升18%,用户人均观看时长增加9%。

Python 演示

python74 行
from itertools import permutations  def skeleton(edges):    # 将每条有向边 (a, b) 转成无序对,构成骨架边集    return {tuple(sorted(e)) for e in edges}  def ancestors(node, edges):    # 返回能够通过有向路径到达 node 的祖先集合    result = set()    changed = True    while changed:        changed = False        for a, b in edges:            if b == node and a not in result:                result.add(a)                changed = True            if a in result and b not in result:                result.add(b)                changed = True    return result  def do_effect_signature(edges, nodes):    # 近似干预效应签名:若 i 是 j 的祖先,则认为 do(i) 会影响 j    sig = set()    for i, j in permutations(nodes, 2):        if i in ancestors(j, edges):            sig.add((i, j))    return sig  def evaluate_causal_graph(true_edges, est_edges, nodes):    true_edges = set(true_edges)    est_edges = set(est_edges)    true_sk = skeleton(true_edges)    est_sk = skeleton(est_edges)     tp = len(est_sk & true_sk)    fp = len(est_sk - true_sk)    fn = len(true_sk - est_sk)     precision = tp / (tp + fp) if tp + fp > 0 else 0.0    recall = tp / (tp + fn) if tp + fn > 0 else 0.0    f1 = (2 * precision * recall / (precision + recall)          if precision + recall > 0 else 0.0)     common_sk = est_sk & true_sk    correct_dir = 0    for a, b in common_sk:        if (a, b) in est_edges and (a, b) in true_edges:            correct_dir += 1        if (b, a) in est_edges and (b, a) in true_edges:            correct_dir += 1    dir_acc = correct_dir / len(common_sk) if common_sk else 0.0     shd = len(est_sk - true_sk) + len(true_sk - est_sk)     true_sig = do_effect_signature(true_edges, nodes)    est_sig = do_effect_signature(est_edges, nodes)    sid = len(true_sig ^ est_sig)     return {"precision": precision, "recall": recall, "f1": f1,            "dir_acc": dir_acc, "shd": shd, "sid": sid}  if __name__ == "__main__":    nodes = ["A", "B", "C"]    true_edges = {("A", "B"), ("A", "C")}    est_edges = {("A", "B"), ("C", "A")}    metrics = evaluate_causal_graph(true_edges, est_edges, nodes)    for k, v in metrics.items():        print(f"{k}: {v:.3f}")
目的:对因果发现算法的输出结果与真实因果结构进行多维对比,一次性计算骨架F1、方向准确率、SHD和近似SID,方便算法调参与对比实验。
  1. skeleton(edges)将有向边去方向,生成无向骨架边集,用于后续拓扑指标计算。
  2. tp / (tp + fp)计算精确率:算法标出的道路中真实存在的占比。
  3. tp / (tp + fn)计算召回率:真实道路中被找回的占比。
  4. 2 * precision * recall / (precision + recall)精确率与召回率的调和平均,公式即骨架F1。
  5. correct_dir / len(common_sk)在公共骨架上计算方向一致的比例,即方向准确率。
  6. len(est_sk - true_sk) + len(true_sk - est_sk)真实图与估计图独有边数之和,即SHD。
  7. do_effect_signature(edges, nodes)用祖先关系生成干预效应签名,等价于“干预i是否影响j”的二元判断。
  8. len(true_sig ^ est_sig)真图与估计图干预效应签名的对称差大小,即近似SID数值。

常见误区

误区我的算法骨架F1达到了0.95,说明因果方向也基本靠谱,可以直接用于干预决策了。

正解骨架F1完全不看方向。一个算法可能把所有边都找对了,但箭头方向全画反,骨架F1依然很高。就好比你把城市所有道路都标注出来,却每条单行道都画反——地图整体依旧不可用。判断能否支持干预决策,必须结合方向准确率和SID一起看。

为何常见:人们习惯用一个总分判断全局,而骨架F1数值直观、公式简单,容易被当作唯一的“质量分”。

误区SHD为0说明估计图与真实图完全一致,那么SID也一定为0,因果效应自然准确。

正解SHD基于结构差异计数,SID基于干预分布差异计数。当两张图的有向边完全一致时,SID确实为0;但要注意,SHD的0只代表结构完全一致,若参数估计不准确,因果效应依然可能偏差。此外,SHD没有方向加权,有时漏一条关键V结构边和漏一条普通边的代价被等同视之,而SID会给出更严格的效应误差评估。

为何常见:把“结构相同”与“效应相同”混为一谈,忽略了因果效应还依赖参数和干预传播路径。

误区方向准确率既然叫“准确率”,那就应该把图上所有边都拿来平均计算。

正解方向准确率只在“估计骨架与真实骨架一致”的公共边上有意义。如果算法的骨架本身就有很多错误边,单纯看方向准确率会高得虚高——因为大量错边根本不在骨架里。更合理的做法是结合SHD,先看拓扑差异,再解读方向准确率。

为何常见:初学者容易把“准确率”理解为全局比例,忽略它计算时的分母和分子定义。

误区SID和SHD应该呈正相关,SID大一定是因为结构图差得不成样子。

正解SID对结构差异非常敏感,但也可能因为一小处关键方向错误而突然变大。比如一个三节点图里只有一条边方向错了,SHD可能只有1,SID却可能覆盖多个受影响的干预分布对,数值成倍增长。SID衡量的是“干预效应层面的误差”,不是“结构层面的误差”。

为何常见:人们习惯把所有指标都理解为结构差异的投影,忽视了SID独特的干预分布视角。

误区论文里把骨架F1、方向准确率、SHD、SID全列出来,读者自己看就好,不需要解释侧重。

正解不同指标服务于不同决策需求。如果业务目标是探索变量关联,SID再高也不影响结论;如果目标是干预指导,骨架F1单独很高反而会误导。科学的评估报告应说明“本次任务关注哪个维度,为什么这个指标更重要”,并给出跨指标的一致或不一致分析。

为何常见:面对琳琅满目的指标,缺少“指标—问题”映射的思维习惯,容易陷入数据堆砌。

面试题

Q1. 骨架F1分数主要衡量因果图的哪个方面?

单选题 · easy

  • A.变量间的方向是否正确
  • B.变量间的连接是否存在← 正确答案
  • C.干预效应是否准确
  • D.参数估计是否无偏

答案:B。骨架F1只关注边是否存在,忽略方向,因此答案是“连接是否存在”。方向是否正确由方向准确率衡量,干预效应由SID衡量,参数估计则不在骨架F1的考察范围内。

Q2. 精确率与召回率分别关注什么?

单选题 · easy

  • A.地图的完整性与方向准确性
  • B.画出的边是否真实存在,真实边是否被找回← 正确答案
  • C.边的方向是否一致,效应是否相同
  • D.节点数量与路径长度

答案:B。精确率回答“画出的边有多少是真实的”,召回率回答“真实的边找回了多少”。两者一个防虚构,一个防遗漏,与方向、效应、节点数量等都无关。

Q3. 当真实图有2条边、估计图多画了1条不存在且漏了1条真实边时,SHD是多少?

单选题 · easy

  • A.1
  • B.2← 正确答案
  • C.3
  • D.4

答案:B。SHD = 真实图独有边数(漏掉的1条)+ 估计图独有边数(多画的1条)= 2。它统计的是两幅图之间的对称差异,不关心TP部分。

Q4. 方向准确率计算时的分母是什么?

单选题 · mid

  • A.真实图的所有有向边数
  • B.估计图的所有有向边数
  • C.真实图与估计图公共骨架的边数← 正确答案
  • D.真实图与估计图全部有向边的并集数

答案:C。方向准确率只对“骨架正确的边”计算方向匹配比例,因此分母是公共骨架边数。若分母用真实图或估计图的总边数,会因骨架错误而失去可比性。

Q5. SHD为0可以推导出什么结论?

单选题 · mid

  • A.骨架F1一定等于1
  • B.方向准确率一定等于1
  • C.SID一定等于0← 正确答案
  • D.骨架F1、方向准确率、SID都为0

答案:C。SHD为0意味着两张有向图的边完全一致,因此公共骨架就是全部边,方向全部正确,骨架F1=1且SID=0,选项C正确。B虽然正确但不如C完整,因为题目问推导结论,C覆盖了更严格的效应层面。

Q6. 两个DAG拥有相同的骨架和相同的V结构,下列说法正确的是?

单选题 · mid

  • A.骨架F1必然不同
  • B.方向准确率必然不同
  • C.二者属于同一个马尔可夫等价类← 正确答案
  • D.SID必然相同

答案:C。相同骨架和相同V结构是马尔可夫等价类的定义特征,因此C正确。骨架F1只看骨架所以必然相同;方向准确率可能相同也可能不同;SID在方向可能不同的情况下也可能不同,均不是必然结论。

Q7. 下列哪些指标属于“拓扑层面”的评估?

多选题 · mid

  • A.骨架F1分数← 正确答案
  • B.方向准确率
  • C.结构汉明距离SHD← 正确答案
  • D.结构干预距离SID

答案:AC。骨架F1和SHD都基于边是否存在进行比较,属于拓扑层面。方向准确率属于方向层面,SID属于干预效应层面。理解这个分类有助于根据业务目标选择合适的指标组合。

Q8. 关于SID与SHD的区别,下列说法正确的有?

多选题 · mid

  • A.SHD统计结构差异的编辑次数← 正确答案
  • B.SID计算干预分布的误差← 正确答案
  • C.SHD不区分方向差异
  • D.SID对方向错误非常敏感← 正确答案

答案:ABD。SHD统计增删边次数,SID从干预分布角度衡量效应误差。SHD中的边是有向边,方向不同也算差异,因此C错误。SID对方向错误极为敏感,哪怕一条关键边方向反了,也会导致大量干预分布对失配。

Q9. 在可信AI应用中,因果发现评估指标可以用于哪些环节?

多选题 · hard

  • A.验证模型找到的因果路径是否可靠← 正确答案
  • B.衡量反事实推断的干预效应误差← 正确答案
  • C.直接替代深度模型的损失函数
  • D.评估可解释性输出的因果链质量← 正确答案

答案:ABD。A是方向准确率与SHD的用途,B是SID的用途,D是可解释性评估的扩展场景。C错误,因果发现评估指标是离线评估工具,不能直接替代深度学习模型的训练损失函数。

Q10. 当真实DAG与估计DAG拥有相同骨架、相同方向且SHD=0时,SID的取值是什么?

单选题 · extreme

  • A.可能大于0,取决于参数
  • B.一定等于0← 正确答案
  • C.取决于样本量
  • D.无法确定

答案:B。SHD=0意味着所有有向边完全相同,干预后的因果图结构也一致。此时对于任意节点对,干预分布的计算结构相同,SID必然为0,选项B正确。A把结构一致和参数效应混为一谈,C和D忽略了结构相同的决定性作用。