净化#

interpret.utils.purify(scores, weights, tolerance=0.0, is_randomized=True)#
Purifies a multi-dimensional tensor into it’s pure component and a series of impure components. For pairs, the

结果将是一对,其中沿任何行或列的加权和为零,并且两个主要效应是来自该对的杂质。主要效应将进一步纯化为零中心图和截距。此函数还处理多类,当分数张量比权重多一个维度时检测到多类。对于多类,类分数被调整为零和,这可以在不产生任何杂质的情况下完成。

净化算法基于论文: “使用功能方差分析净化交互效应:一种恢复可识别加性模型的高效算法” https://arxiv.org/abs/1911.04974

Parameters:
  • scores – 需要净化的分数张量。

  • weights – 分数张量中每个元素的权重。

  • tolerance – 如果需要,可以指定一个容差,以使算法在牺牲纯度的情况下更快退出。 算法将在达到容差或纯度停止提高时退出。

  • is_randomized – 如果 is_randomized 为 False,则净化过程将以可预测的顺序进行。使用随机顺序可以消除由于总是先处理一个维度而可能引入的偏差。

Returns:

  1. 纯化后的张量。

  2. 生成的杂质元组列表。元组中的第一项将是一个索引元组,指示杂质适用于哪些维度。第二项是这些维度的杂质张量。

  3. 纯化生成的截距。

Return type:

包含3个值的元组