Lime包无法获得CaretStack的预测

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

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

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

当我尝试使用Lime解释黑匣子预测时,挑战来了。我得到一个错误说“模型类必须有一个model_type方法”

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

有没有人知道是否有任何工作要包括CaretStack与Lime一起使用?或者知道解决此问题的解决方法。

r r-caret lime
1个回答
1
投票

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

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

  1. 从插入符号列车
  2. 来自mlr的WrappedModel
  3. 来自xgboost的xgb.Booster
  4. 来自h2o的H2模型
  5. hard.engine.training.Model from hard
  6. 来自MASS的lda(用于低依赖性示例)

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

否则,你需要实现一个predict_model()方法和一个model_type()方法(如果省略后者,模型应该包含在as_classifier()/ as_regressor()中,每次在lime()中使用时)。

解决您的问题:

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

© www.soinside.com 2019 - 2024. All rights reserved.