LIME ML 解释器模式隔离森林的分类或回归(异常检测)

问题描述 投票:0回答:4

我正在尝试在包含 1000 多个文档的数据集中查找异常情况。我使用 LIME ML Interpreter 来解释模型(隔离森林)预测。在一个参数“模式”中,我可以在分类和回归之间进行选择。我没有一组包含已知异常的文档。 由于隔离森林是一种无监督学习方法,而分类是一种监督学习,用于将观察结果分类为两个或多个类别,因此我最终使用了回归。另一方面,我的结果异常或没有异常。

这里正确使用什么?

最诚挚的问候, 埃丽

python regression classification anomaly-detection lime
4个回答
1
投票

对于我们来说,我们所做的事情如下:

  1. 使用隔离森林获取异常。
  2. 将隔离森林返回的 1 和 -1 视为类标签,并构建随机森林分类器。
  3. 将此随机森林分类器传递给 LIME 以获取异常点的解释。

我们也在尝试寻找更好的选择,而不是构建二级随机森林分类器。


0
投票

不直接与 LIME 有关,但 Shapley 值可用于为 IsolationForest 创建类似的解释。请参阅此答案


0
投票

我看到的另一个选择是在 IsoForest 树构建期间保留 10-20% 的数据集。在此保留上对模型进行评分并获得异常分数(或平均树深度)并在此基础上构建解释器。然后在对新数据进行评分时,LIME 会将其视为回归问题...我不确定这会发挥多大作用...


0
投票

您的分析是正确的。由于隔离森林的异常检测是无监督的(没有标记的异常),因此使用 LIME 中的分类模式比回归更合适。

原因如下:

  • 分类模式更符合异常的二元本质 检测。 LIME 将解释隔离森林如何对 记录为异常 (1) 或正常 (0)。

  • 回归模式适用于连续输出,但情况并非如此 来自隔离森林的异常分数。

以下是调整代码的方法:

假设您已经训练了隔离森林模型并加载了数据

explainer = LimeTabularExplainer(data=X_train, feature_names=feature_names, mode="classification")  # Use classification mode
exp = explainer.explain_instance(document_to_explain, rf.predict_proba)  # Use predict_proba for class probabilities
fig = exp.as_pypplot_figure()

其他注意事项:

  • 虽然隔离森林不提供固有的类别概率, 您可以使用其异常分数作为异常可能性的代理。 分数越高表示异常的可能性越高。
  • LIME 可能不是隔离最有效的解释方法 森林由于其固有的复杂性。考虑替代方案 特征重要性分析或可视化等技术 异常分数。
  • 通过使用分类模式并了解其局限性 LIME 与隔离森林,您可以深入了解 影响模型异常检测决策的因素。
© www.soinside.com 2019 - 2024. All rights reserved.