Lime程序包无法获得CaretStack的预测

时间:2019-03-05 11:08:08

标签: r r-caret lime

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

模型成功运行,结果令人鼓舞。

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

我唯一遇到此错误的时间是在H20中使用Lime时。随后,Lime背后的家伙发布了一个更新,该更新支持Lime中的H20。

有人知道是否做过任何工作来包括CaretStack以便与Lime一起使用吗?或知道解决此问题的解决方法。

1 个答案:

答案 0 :(得分:1)

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

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

  1. 从插入符开始的火车

  2. 来自mlr的包装模型

  3. xgb。来自xgboost的助推器

  4. H2O的H2O模型

  5. keras的keras.engine.training.Model

  6. 来自MASS的
  7. lda(用于低依赖性示例)

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

否则,您将需要实现predict_model()方法和潜在的model_type()方法(如果省略后者,则该模型每次在lime()中使用时都应包装在as_classifier()/ as_regressor()中。 ))。

您的问题的解决方案:

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