石灰包无法获得CaretStack的预测

石灰包无法获得CaretStack的预测,r,r-caret,lime,R,R Caret,Lime,通过将模型堆叠在一起,我构建了一个插入符号集合模型 模型运行成功,我得到了令人鼓舞的结果 当我试图用石灰来解释黑盒预测时,挑战来了。我在说“模型类必须有模型类型方法”时出错 我唯一一次遇到这样的错误是在H20中使用石灰时。随后,Lime背后的人发布了一个更新,支持Lime中的H20 有人知道是否已经做了任何工作,包括用于石灰的CaretStack?或者知道解决此问题的解决方法。根据Lime文档,这些是受支持的模型 现成的lime支持以下模型对象: 从插入符号开始训练 来自mlr的WrappedM

通过将模型堆叠在一起,我构建了一个插入符号集合模型

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

当我试图用石灰来解释黑盒预测时,挑战来了。我在说“模型类必须有模型类型方法”时出错

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


有人知道是否已经做了任何工作,包括用于石灰的CaretStack?或者知道解决此问题的解决方法。

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

现成的lime支持以下模型对象:

  • 从插入符号开始训练

  • 来自mlr的WrappedModel

  • xgb.来自xgb增压器的增压器

  • h2o模型

  • 来自keras的keras.engine.training.Model

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

  • 如果您的模型不是上述模型之一,您需要自己实现支持。如果模型有一个predict接口,它模仿caret中predict.train()的接口,那么将模型包装成as_classifier()/as_regressor()就足以获得支持

    否则,您将需要实现predict_model()方法,并可能实现model_type()方法(如果省略了后者,则每次在lime()中使用该模型时,都应将其包装为作为_分类器()/作为_回归器()

    问题的解决方案:


    就您的情况而言,CaretStack有一个与predict.train()类似的predict接口,因此将您的模型包装为as_分类器()或as_回归器()就足够了

    @Bokkiem,如果这能回答您的问题,请接受。通过单击与我的答案关联的勾号接受。