是否可以解释 sklearn 隔离森林预测?

Is it possible to explain sklearn isolation forest prediction?

我正在使用 sklearn 中的隔离森林算法来进行一些无监督的异常检测。 我需要解释预测,我想知道是否有任何方法可以获得导致每个样本做出决定的路径。

我通常使用 SHAP 或 ELI5,但我想做一些更自定义的事情。所以我需要确切的路径。

您正在创建树的集合,因此集合中每棵树的给定实例的路径都不同。为了检测异常,隔离森林采用给定实例的所有树的平均路径长度(隔离样本的分裂数),并使用它来确定它是否是异常(平均较短的路径长度表示异常)。当您查看一组树的平均值时,没有 'exact' 路径。

据我所知,你最好的选择是使用像你提到的 SHAP 这样的东西,但你也可以只训练几个估计器并查看这些树中给定实例所采用的路径以获得洞察力进入决策。

您现在可以使用 SkLearn IF 的 SHAP 值:https://github.com/slundberg/shap/pull/784/files