MimicWrapper Класс
Средство объяснения программы-оболочки, которое сокращает количество вызовов функций, необходимых для использования пакета объяснения модели.
Инициализируйте MimicWrapper.
"<<который принимает 2d ndarray :p aram explainable_model: неинициализированная суррогатная модель, используемая для объяснения модели черного ящика.
Ее также называют моделью учащихся.
- Наследование
-
azureml._logging.chained_identity.ChainedIdentityMimicWrapper
Конструктор
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
|
Идентификатор набора данных или обычный набор данных, используемый для инициализации средства объяснения (например, x_train). Default value: None
|
run
|
Выполнение, с которым должно быть связано это объяснение. Default value: None
|
features
|
Список имен признаков. Default value: None
|
classes
|
Имена классов в виде списка строк. Порядок имен классов должен соответствовать порядку выходных данных модели. Требуется только при объяснении классификатора. Default value: None
|
model_task
|
Необязательный параметр, указывающий, является ли модель моделью классификации или моделью регрессии. В большинстве случаев тип модели может выводиться на основе формы выходных данных, где классификатор имеет метод 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. Примеры работающих преобразований:
Пример преобразования, которое вызовет ошибку, так как не может интерпретироваться как "один ко многим":
Последний пример не будет работать, так как пакет 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
Обязательно
|
Идентификатор набора данных или обычный набор данных, используемый для инициализации средства объяснения (например, x_train). |
run
Обязательно
|
Выполнение, с которым должно быть связано это объяснение. |
features
Обязательно
|
Список имен признаков. |
classes
Обязательно
|
Имена классов в виде списка строк. Порядок имен классов должен соответствовать порядку выходных данных модели. Требуется только при объяснении классификатора. |
model_task
Обязательно
|
Необязательный параметр, указывающий, является ли модель моделью классификации или моделью регрессии. В большинстве случаев тип модели может выводиться на основе формы выходных данных, где классификатор имеет метод 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. Примеры работающих преобразований:
Пример преобразования, которое вызовет ошибку, так как не может интерпретироваться как "один ко многим":
Последний пример не будет работать, так как пакет 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
|
Идентификатор набора данных или обычный набор данных, используемый для формирования объяснения. Default value: None
|
top_k
|
По возможности ограничьте объем данных, возвращаемых и хранящихся в журнале выполнения, до k первых признаков. Default value: None
|
upload
|
Если задано значение True, объяснение автоматически отправляется в журнал выполнения для хранения и визуализации. Если выполнение не было передано при инициализации, оно будет создано. Default value: True
|
upload_datasets
|
Если задано значение True и идентификаторы наборов данных не передаются, набор данных для оценки будет отправлен в службу хранилища Azure. Это позволит улучшить визуализацию, доступную в веб-представлении. Default value: False
|
tag
Обязательно
|
Строка, которую необходимо присоединить к объяснению, чтобы отличать его от других после отправки. |
get_raw
|
Если задано значение True и параметр Default value: False
|
raw_feature_names
|
Список необработанных имен признаков, заменяющих имена сконструированных признаков из конструктора. Default value: None
|
experiment_name
|
Имя для объяснения, если Default value: explain_model
|
raw_eval_dataset
|
Необработанные данные оценки для отправки для необработанных объяснений. Default value: None
|
true_ys
|
Истинные метки для примеров оценки. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект объяснения. |
Атрибуты
explainer
Получение средства объяснения, которое используется программой-оболочкой для внутренних целей.
Возвращаемое значение
Тип | Описание |
---|---|
Средство объяснения, которое используется программой-оболочкой для внутренних целей. |