azureml, объясняющий XGBoost с помощью TreeExplainer - PullRequest
0 голосов
/ 07 октября 2019

Я хотел бы объяснить модель XGBoost, которая была найдена с использованием функции autoML. У меня проблемы с преобразованиями, которые там используются, или, скорее, с правильным вызовом TreeExplainer. В рабочей области Azure ML я вижу, что модель использует XGBoostClassifier и StandardScalerWrapper, но я не знаю, для каких функций она была применена.

Как должен выглядеть правильный вызов для объяснения модели?

Пожалуйста, посмотрите ниже, как я это делаю, но на самом деле это не работает, ошибка говорит: «слишком много значений для распаковки (ожидается 2)».

Кроме того, когда я пытаюсь использоватьTabularExplainer, который согласно описанию должен сам выбирать TreeExplainer, я получаю сообщение об ошибке, что для моей модели не найден объяснитель. Не могли бы вы, пожалуйста, совет?

model = pickle.load(open('./GenericModel/AllSystems/model/General-All_KPIs-by-normRecall.pkl', 'rb'))

from azureml.explain.model.tabular_explainer import TreeExplainer
# "features" and "classes" fields are optional
explainer = TreeExplainer(model,  
                             X_test,
                             transformations=['StandardScaler'],
                             allow_all_transformations=True)


# Get the global feature importance values
# you can use the training data or the test data here
global_explanation = explainer.explain_global(X_test)
...