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

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

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

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

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

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


person Bokkiem    schedule 05.03.2019    source источник


Ответы (1)


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

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

  1. поезд из каре

  2. WrappedModel от млр

  3. xgb.Booster от xgboost

  4. H2OМодель от h2o

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

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

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

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

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

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

person user1783739    schedule 07.03.2019
comment
@Bokkiem, примите, если это ответит на ваш вопрос. Принять, нажав на галочку, связанную с моим ответом. - person user1783739; 11.03.2019