Lime 包无法获得 CaretStack 的预测

Posted

技术标签:

【中文标题】Lime 包无法获得 CaretStack 的预测【英文标题】:Lime package not able to get predictions for CaretStack 【发布时间】:2019-07-26 20:08:11 【问题描述】:

我通过将模型堆叠在一起构建了一个 Caret 集成模型。

模型运行成功,我得到了令人鼓舞的结果。

当我尝试使用 Lime 来解释黑盒预测时,挑战就来了。我收到一条错误消息“模型的类必须有一个 model_type 方法”

我唯一一次遇到这种错误是在 H20 中使用 Lime 时。随后,Lime 背后的人发布了支持 Lime 中的 H20 的更新。

有谁知道是否有任何工作将 CaretStack 包含在 Lime 中?或者知道解决此问题的解决方法。

【问题讨论】:

【参考方案1】:

根据 Lime 文档,这些是支持的模型

lime 开箱即用,支持以下模型对象:

    从插入符号训练

    来自 mlr 的 WrappedModel

    来自 xgboost 的 xgb.Booster

    来自 h2o 的 H2OModel

    keras 中的 keras.engine.training.Model

    来自 MASS 的 lda(用于低依赖示例)

如果您的模型不是上述模型之一,您需要自己实现支持。如果模型有一个预测接口模仿插入符号中的 predict.train() 接口,那么将模型包装在 as_classifier()/as_regressor() 中就足够了,以获得支持。

否则你需要实现一个 predict_model() 方法和一个可能的 model_type() 方法(如果后者被省略,模型应该被包装在 as_classifier()/as_regressor() 中,每次它在lime( ))。

您的问题的解决方案:

对于您的情况,CaretStack 有一个模仿 predict.train() 的预测接口,因此将您的模型包装在 as_classifier() 或 as_regressor() 中就足够了

【讨论】:

@Bokkiem,如果这回答了您的问题,请接受。点击与我的答案相关的勾号接受。

以上是关于Lime 包无法获得 CaretStack 的预测的主要内容,如果未能解决你的问题,请参考以下文章

使用 LIME 预测 R 中的 logit 模型?

R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果使用LIME解释器进行模型预测结果解释

R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果LIME解释器进行模型预测结果解释并可视化

Lime 解释器显示与分类器预测不同的预测概率 - 情感分析

R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理构建词袋模型构建xgboost文本分类模型基于文本训练数据以及模型构建LIME解释器解释一个测试语料的预测结果并可视化

R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理构建词袋模型构建xgboost文本分类模型基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化