Пакет Lime не может получить прогнозы для CaretStack

#r #r-caret #lime

#r #r-каретка #lime

Вопрос:

Я построил модель ансамбля каретки, объединив модели вместе.

Модель работала успешно, и я получил обнадеживающие результаты.

Проблема возникла, когда я попытался использовать Lime для интерпретации прогнозов черного ящика. Я получил сообщение об ошибке «Класс model должен иметь метод model_type»

Единственный раз, когда я столкнулся с такой ошибкой, был при использовании Lime в H20. Впоследствии разработчики Lime выпустили обновление, поддерживающее H20 в Lime.

Кто-нибудь знает, была ли проделана какая-либо работа по включению CaretStack для использования с Lime? Или знаете обходной путь для решения этой проблемы.

Ответ №1:

Согласно документации Lime, это поддерживаемые модели

Из коробки lime поддерживает следующие объекты модели:

  1. поезд из caret

  2. WrappedModel из mlr

  3. xgb.Booster от xgboost

  4. H2OModel из h2o

  5. keras.engine.training.Модель от keras

  6. lda из MASS (используется для примеров с низкой зависимостью)

Если ваша модель не соответствует ни одной из вышеперечисленных, вам необходимо самостоятельно внедрить поддержку. Если модель имеет интерфейс predict, имитирующий интерфейс predict.train() из caret , будет достаточно обернуть вашу модель в as_classifier() / as_regressor(), чтобы получить поддержку.

В противном случае вам потребуется реализовать метод predict_model() и, возможно, метод model_type() (если последний опущен, модель должна быть обернута в as_classifier() / as_regressor(), каждый раз, когда он используется в lime()).

Решение вашего вопроса:

В вашем случае CaretStack имеет интерфейс predict, имитирующий интерфейс predict.train(), поэтому обертывания вашей модели в as_classifier() или as_regressor () должно быть достаточно

Комментарии:

1. @Bokkiem, пожалуйста, примите, если это ответ на ваш вопрос. Примите, нажав на галочку, связанную с моим ответом.