Поделиться через


MimicWrapper Класс

Средство объяснения программы-оболочки, которое сокращает количество вызовов функций, необходимых для использования пакета объяснения модели.

Инициализируйте MimicWrapper.

"<<который принимает 2d ndarray :p aram explainable_model: неинициализированная суррогатная модель, используемая для объяснения модели черного ящика.

Ее также называют моделью учащихся.

Наследование
azureml._logging.chained_identity.ChainedIdentity
MimicWrapper

Конструктор

MimicWrapper(workspace, model, explainable_model, explainer_kwargs=None, init_dataset=None, run=None, features=None, classes=None, model_task=ModelTask.Unknown, explain_subset=None, transformations=None, feature_maps=None, allow_all_transformations=None)

Параметры

Имя Описание
workspace
Обязательно

Объект рабочей области, в котором определены модели и наборы данных.

model
Обязательно
str или <xref:<xref:model that implements sklearn.predict>()> или <xref:sklearn.predict_proba>() или <xref:<xref:pipeline function that accepts a 2d ndarray>>

Идентификатор модели, зарегистрированной в MMS, или обычной модели машинного обучения, или конвейера для объяснения. Если указана модель, она должна реализовывать sklearn.predict() или sklearn.predict_proba(). Если указан конвейер, он должен включать в себя функцию, которая принимает второй массив.

explainable_model
Обязательно

Неинициализированная суррогатная модель, используемая для объяснения модели "черного ящика". Ее также называют моделью учащихся.

explainer_kwargs

Аргументы ключевого слова, которые сопровождают выбранное средство объяснения, не рассматриваются в этой статье. Они будут переданы в виде kwargs при инициализации базового средства объяснения.

Default value: None
init_dataset
str или array или DataFrame или csr_matrix

Идентификатор набора данных или обычный набор данных, используемый для инициализации средства объяснения (например, x_train).

Default value: None
run
Run

Выполнение, с которым должно быть связано это объяснение.

Default value: None
features

Список имен признаков.

Default value: None
classes

Имена классов в виде списка строк. Порядок имен классов должен соответствовать порядку выходных данных модели. Требуется только при объяснении классификатора.

Default value: None
model_task
str

Необязательный параметр, указывающий, является ли модель моделью классификации или моделью регрессии. В большинстве случаев тип модели может выводиться на основе формы выходных данных, где классификатор имеет метод predict_proba и выдает двумерный массив, а регрессор имеет метод predict и выдает одномерный массив.

Default value: ModelTask.Unknown
explain_subset

Список индексов признаков. Если этот параметр указан, Azure выбирает только набор признаков в наборе данных для оценки, что позволит ускорить процесс объяснения, если количество признаков велико и вам уже известны интересующие вас признаки. Набор может представлять собой k первых признаков из сводки по модели. Этот параметр не поддерживается, если заданы преобразования.

Default value: None
transformations

sklearn.compose.ColumnTransformer или список кортежей, описывающих имя столбца и преобразователь. При указании преобразований, объяснения относятся к признакам до преобразования. Формат списка преобразований — https://github.com/scikit-learn-contrib/sklearn-pandas.

Если используется преобразование, не входящее в список преобразований sklearn.preprocessing, поддерживаемых пакетом interpret-community, этот параметр не может принимать список из нескольких столбцов в качестве входных данных для преобразования. Можно использовать следующие преобразования sklearn.preprocessing со списком столбцов, так как они уже характеризуются зависимостями типа "один ко многим" или "один к одному": Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Примеры работающих преобразований:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

Пример преобразования, которое вызовет ошибку, так как не может интерпретироваться как "один ко многим":


   [
       (["col1", "col2"], my_own_transformer)
   ]

Последний пример не будет работать, так как пакет interpret-community не может определить, какое сопоставление дает my_own_transformer при обработке последовательности столбцов: "многие ко многим" или "один ко многим."

Для создания необработанных объяснений необходимо указать только один параметр из "transformations" или "feature_maps". При указании обоих параметров возникнет исключение конфигурации.

Default value: None
feature_maps

Список сопоставления необработанных и сформированных признаков. Этот параметр может представлять собой список массивов numpy или разреженных матриц, где каждая запись массива (raw_index, generated_index) представляет вес каждой пары необработанных и сформированных признаков. Остальные записи приравниваются к нулю. Для последовательности преобразований [t1, t2, ..., tn], создающей сформированные признаки из необработанных, в списке сопоставлений признаков сопоставления необработанных и сформированных признаков идут в том же порядке (t1, t2, и т. д.). Если доступно общее сопоставление необработанных и сформированных признаков от t1 до tn, можно передать только его в виде одного списка элементов.

Для создания необработанных объяснений необходимо указать только один параметр из "transformations" или "feature_maps". При указании обоих параметров возникнет исключение конфигурации.

Default value: None
allow_all_transformations

Разрешение на преобразование "многие ко многим" и "многие к одному".

Default value: None
workspace
Обязательно

Объект рабочей области, в котором определены модели и наборы данных.

model
Обязательно
str или <xref:<xref:model that implements sklearn.predict>()> или <xref:sklearn.predict_proba>() или <xref:<xref:pipeline function>>

Идентификатор модели, зарегистрированной в MMS, или обычной модели машинного обучения, или конвейера для объяснения. Если указана модель, она должна реализовывать sklearn.predict() или sklearn.predict_proba(). Если указан конвейер, он должен включать в себя функцию, которая принимает второй массив.

explainer_kwargs
Обязательно

Аргументы ключевого слова, которые сопровождают выбранное средство объяснения, не рассматриваются в этой статье. Они будут переданы в виде kwargs при инициализации базового средства объяснения.

init_dataset
Обязательно
str или array или DataFrame или csr_matrix

Идентификатор набора данных или обычный набор данных, используемый для инициализации средства объяснения (например, x_train).

run
Обязательно
Run

Выполнение, с которым должно быть связано это объяснение.

features
Обязательно

Список имен признаков.

classes
Обязательно

Имена классов в виде списка строк. Порядок имен классов должен соответствовать порядку выходных данных модели. Требуется только при объяснении классификатора.

model_task
Обязательно
str

Необязательный параметр, указывающий, является ли модель моделью классификации или моделью регрессии. В большинстве случаев тип модели может выводиться на основе формы выходных данных, где классификатор имеет метод predict_proba и выдает двумерный массив, а регрессор имеет метод predict и выдает одномерный массив.

explain_subset
Обязательно

Список индексов признаков. Если этот параметр указан, выбирает только подмножество признаков в наборе данных оценки для объяснения, что ускорит процесс объяснения, когда количество признаков велико и пользователь уже знает набор заинтересованных функций. Набор может представлять собой k первых признаков из сводки по модели. Этот аргумент не поддерживается, если заданы преобразования.

transformations
Обязательно

sklearn.compose.ColumnTransformer или список кортежей, описывающих имя столбца и преобразователь. При указании преобразований, объяснения относятся к признакам до преобразования. Формат списка преобразований — https://github.com/scikit-learn-contrib/sklearn-pandas.

Если используется преобразование, не входящее в список преобразований sklearn.preprocessing, поддерживаемых пакетом interpret-community, этот параметр не может принимать список из нескольких столбцов в качестве входных данных для преобразования. Можно использовать следующие преобразования sklearn.preprocessing со списком столбцов, так как они уже характеризуются зависимостями типа "один ко многим" или "один к одному": Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Примеры работающих преобразований:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

Пример преобразования, которое вызовет ошибку, так как не может интерпретироваться как "один ко многим":


   [
       (["col1", "col2"], my_own_transformer)
   ]

Последний пример не будет работать, так как пакет interpret-community не может определить, какое сопоставление дает my_own_transformer при обработке последовательности столбцов: "многие ко многим" или "один ко многим."

Для создания необработанных объяснений необходимо указать только один параметр из "transformations" или "feature_maps". При указании обоих параметров возникнет исключение конфигурации.

feature_maps
Обязательно
list[array] или list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>

Список сопоставления необработанных и сформированных признаков. Этот параметр может представлять собой список массивов numpy или разреженных матриц, где каждая запись массива (raw_index, generated_index) представляет вес каждой пары необработанных и сформированных признаков. Остальные записи приравниваются к нулю. Для последовательности преобразований [t1, t2, ..., tn], создающей сформированные признаки из необработанных, в списке сопоставлений признаков сопоставления необработанных и сформированных признаков идут в том же порядке (t1, t2, и т. д.). Если доступно общее сопоставление необработанных и сформированных признаков от t1 до tn, можно передать только его в виде одного списка элементов.

Для создания необработанных объяснений необходимо указать только один параметр из "transformations" или "feature_maps". При указании обоих параметров возникнет исключение конфигурации.

Комментарии

Класс MimicWrapper можно использовать для объяснения моделей машинного обучения. Он особенного эффективен в сочетании с AutoML. Например, используя функцию automl_setup_model_explanations в модуле <xref:azureml.train.automl.runtime.automl_explain_utilities>, класс MimicWrapper позволяет выполнять вычисления и визуализацию важности признака. Дополнительные сведения см. в статье Интерпретируемость: объяснения модели в автоматизированном машинном обучении.

В следующем примере класс MimicWrapper используется в задаче классификации.


   from azureml.interpret.mimic_wrapper import MimicWrapper
   explainer = MimicWrapper(ws, automl_explainer_setup_obj.automl_estimator,
                explainable_model=automl_explainer_setup_obj.surrogate_model,
                init_dataset=automl_explainer_setup_obj.X_transform, run=automl_run,
                features=automl_explainer_setup_obj.engineered_feature_names,
                feature_maps=[automl_explainer_setup_obj.feature_map],
                classes=automl_explainer_setup_obj.classes,
                explainer_kwargs=automl_explainer_setup_obj.surrogate_model_params)

Дополнительные сведения об этом примере см. в этой записной книжке.

Методы

explain

Объяснение поведения модели и необязательная отправка этого объяснения для хранения и визуализации.

explain

Объяснение поведения модели и необязательная отправка этого объяснения для хранения и визуализации.

explain(explanation_types, eval_dataset=None, top_k=None, upload=True, upload_datasets=False, tag='', get_raw=False, raw_feature_names=None, experiment_name='explain_model', raw_eval_dataset=None, true_ys=None)

Параметры

Имя Описание
explanation_types
Обязательно

Список строк, представляющих требуемые типы объяснений. Сейчас поддерживаются глобальные и локальные типы. Они могут передаваться одновременно. Будет возвращено только одно объяснение.

eval_dataset
str или array или DataFrame или csr_matrix

Идентификатор набора данных или обычный набор данных, используемый для формирования объяснения.

Default value: None
top_k
int

По возможности ограничьте объем данных, возвращаемых и хранящихся в журнале выполнения, до k первых признаков.

Default value: None
upload

Если задано значение True, объяснение автоматически отправляется в журнал выполнения для хранения и визуализации. Если выполнение не было передано при инициализации, оно будет создано.

Default value: True
upload_datasets

Если задано значение True и идентификаторы наборов данных не передаются, набор данных для оценки будет отправлен в службу хранилища Azure. Это позволит улучшить визуализацию, доступную в веб-представлении.

Default value: False
tag
Обязательно
str

Строка, которую необходимо присоединить к объяснению, чтобы отличать его от других после отправки.

get_raw

Если задано значение True и параметр feature_maps был передан во время инициализации, будет возвращено объяснение для необработанных признаков. Если значение не задано или задано значение False, объяснение будет для данных в том виде, в котором они переданы.

Default value: False
raw_feature_names

Список необработанных имен признаков, заменяющих имена сконструированных признаков из конструктора.

Default value: None
experiment_name
str

Имя для объяснения, если upload имеет значение True, но при инициализации не было передано ни одного выполнения.

Default value: explain_model
raw_eval_dataset
str или array или DataFrame или csr_matrix

Необработанные данные оценки для отправки для необработанных объяснений.

Default value: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

Истинные метки для примеров оценки.

Default value: None

Возвращаемое значение

Тип Описание

Объект объяснения.

Атрибуты

explainer

Получение средства объяснения, которое используется программой-оболочкой для внутренних целей.

Возвращаемое значение

Тип Описание

Средство объяснения, которое используется программой-оболочкой для внутренних целей.