【发布时间】:2020-01-14 04:14:17
【问题描述】:
我正在使用 sklearn 的隔离森林算法进行一些无监督的异常检测。 我需要解释预测,我想知道是否有任何方法可以获得导致每个样本决策的路径。
我通常使用 SHAP 或 ELI5,但我想做一些更自定义的事情。所以我需要确切的路径。
【问题讨论】:
标签: python unsupervised-learning anomaly-detection
我正在使用 sklearn 的隔离森林算法进行一些无监督的异常检测。 我需要解释预测,我想知道是否有任何方法可以获得导致每个样本决策的路径。
我通常使用 SHAP 或 ELI5,但我想做一些更自定义的事情。所以我需要确切的路径。
【问题讨论】:
标签: python unsupervised-learning anomaly-detection
您正在创建一个树的集合,因此给定实例的路径对于集合中的每棵树都是不同的。为了检测异常,隔离森林采用给定实例的所有树的平均路径长度(分离样本的分割数),并使用它来确定它是否是异常(平均较短的路径长度表示异常)。当您查看一组树的平均值时,没有“确切”路径。
据我所知,您最好的办法是使用 SHAP 之类的方法,正如您所提到的,但您也可以只训练几个估计器并查看这些树中给定实例所采用的路径,以深入了解决定。
【讨论】:
您现在可以为 SkLearn IF 使用 SHAP 值:https://github.com/slundberg/shap/pull/784/files
【讨论】: