我通过将模型堆叠在一起建立了Caret集成模型。
模型成功运行,结果令人鼓舞。
当我尝试使用Lime解释黑匣子预测时,挑战就来了。我收到一条错误消息:“模型类必须具有model_type方法”
我唯一遇到此错误的时间是在H20中使用Lime时。随后,Lime背后的家伙发布了一个更新,该更新支持Lime中的H20。
有人知道是否做过任何工作来包括CaretStack以便与Lime一起使用吗?或知道解决此问题的解决方法。
答案 0 :(得分:1)
根据Lime文档,这些是受支持的模型
开箱即用,lime支持以下模型对象:
从插入符开始的火车
来自mlr的包装模型
xgb。来自xgboost的助推器
H2O的H2O模型
keras的keras.engine.training.Model
lda(用于低依赖性示例)
如果您的模型不是以上模型之一,则需要自己实施支持。如果模型具有与插入符号中的predict.train()相似的预测接口,则将模型包装在as_classifier()/ as_regressor()中就足够了以获取支持。
否则,您将需要实现predict_model()方法和潜在的model_type()方法(如果省略后者,则该模型每次在lime()中使用时都应包装在as_classifier()/ as_regressor()中。 ))。
您的问题的解决方案:
对于您的情况,CaretStack具有一个与demo.train()相似的预测接口,因此将模型包装在as_classifier()或as_regressor()中就足够了