我正在开展一个项目,将多个机器学习解释器(LIME和SHAP,可能还会出现更多)应用于预训练模型(神经网络),以帮助解释这些“黑匣子”的预测。解释器为每个预测分配每个特征的重要性值。
问题是,这些特征重要性值因解释器而异,评估哪个解释器实际上表现最好并产生最合理的结果是相当棘手的。SHAP的作者已经测试了解释器与人类直觉的一致性,假设:
[...] 好的模型解释应该与理解该模型的人的解释一致。
是的,这是有道理的。但是如何在不需要人工干预的情况下以更通用和可扩展的方式评估不同解释器的性能呢?
一些作者最近试图提出评估指标。我发现一种方法很有趣。作者使用以下直觉:
[...] 只有在解释特征保持不变的情况下难以改变预测时,基于特征的局部解释才具有高质量。解释的质量是通过对不在解释区域中的特征的最小扰动量来量化的,以改变预测。
这也是有道理的。所以我计划以此为基础,专注于表格数据。我们的想法是,对于我们测试数据中的每个实例(行):
- 运行神经网络并观察预测结果。
- 运行解释器并确定每个特征的重要性值。
- 保持具有最高重要性值的特征不变,并改变剩余的特征。
- 再次运行神经网络。如果预测的结果没有改变,回到第 3 步,再改变一些特征,直到结果发生变化。
然后,获得改变结果的必要改变量最高(在所有实例中汇总)的解释器将是最好的。
我希望就可以评估解释者的定量技术展开一场辩论。你怎么认为?另外,说到“改变”特征,这样做的适当方法是什么(使用表格数据时)?我愿意发表评论和想法!