MimicWrapper Classe
Um explicador wrapper que reduz o número de chamadas de função necessárias para usar o pacote de modelo de explicação.
Inicialize o MimicWrapper.
"<<que aceita um ndarray 2d :p aram explainable_model: o modelo alternativo não inicializado usado para explicar o modelo de caixa preta.
Também conhecido como o modelo de aluno.
- Herança
-
azureml._logging.chained_identity.ChainedIdentityMimicWrapper
Construtor
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)
Parâmetros
Nome | Description |
---|---|
workspace
Obrigatório
|
O objeto de espaço de trabalho em que os modelos e conjuntos de dados são definidos. |
model
Obrigatório
|
str ou
<xref:<xref:model that implements sklearn.predict>()> ou
<xref:sklearn.predict_proba>() ou
<xref:<xref:pipeline function that accepts a 2d ndarray>>
A ID de um modelo registrado no MMS ou em um pipeline ou modelo de aprendizado de máquina regular a ser explicado. Se um modelo for especificado, ele deverá implementar sklearn.predict() ou sklearn.predict_proba(). Se um pipeline for especificado, ele deverá incluir uma função que aceite uma segunda matriz. |
explainable_model
Obrigatório
|
O modelo substituto não reinicializado usado para explicar o modelo de caixa preta. Também conhecido como o modelo de aluno. |
explainer_kwargs
|
Os argumentos de palavra-chave juntos ao explicador escolhido não são abordados aqui. Eles serão passados como kwargs quando o explicador subjacente for inicializado. Valor padrão: None
|
init_dataset
|
A ID do conjuntos de dados ou o conjuntos de dados regulares usados para inicializar o explicador (por exemplo, x_train). Valor padrão: None
|
run
|
A execução nessa explicação deve ser associada. Valor padrão: None
|
features
|
Uma lista de nomes de recursos. Valor padrão: None
|
classes
|
Nomes de classe como uma lista de cadeias de caracteres. A ordem dos nomes de classe deve corresponder à da saída do modelo. Necessário somente se estiver explicando o classificador. Valor padrão: None
|
model_task
|
Parâmetro opcional para especificar se o modelo é um modelo de classificação ou regressão. Na maioria dos casos, o tipo do modelo pode ser inferido com base na forma da saída, em que um classificador tem um método predict_proba e saída de uma matriz bidimensional, enquanto um regressor tem um método de previsão e saída de uma matriz dimensional 1. Valor padrão: ModelTask.Unknown
|
explain_subset
|
Uma lista de índices de recursos. Se especificado, o Azure seleciona somente um subconjunto dos recursos no conjunto de dados de avaliação para explicação, o que acelerará o processo de explicação quando o número de recursos for grande e você já conhecer o conjunto de recursos interessantes. O subconjunto pode ser os principais recursos do resumo do modelo. Não há suporte para esse parâmetro quando as transformações estão definidas. Valor padrão: None
|
transformations
|
Um sklearn.compose.ColumnTransformer ou uma lista de tuplas que descrevem o nome da coluna e o transformador. Quando as transformações são fornecidas, as explicações são dos recursos antes da transformação. O formato de uma lista de transformações é o mesmo que o encontrado aqui: https://github.com/scikit-learn-contrib/sklearn-pandas. Se você estiver usando uma transformação que não está na lista de transformações sklearn.preprocessing com suporte pelo pacote interpret-community, esse parâmetro não poderá obter uma lista de mais de uma coluna como entrada para a transformação. Você pode usar as seguintes transformações sklearn.preprocessing com uma lista de colunas, pois elas já são uma para muitas ou uma para uma: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler. Exemplos de transformações que funcionam:
Um exemplo de uma transformação que gera um erro, pois ele não pode ser interpretado como um para muitos:
O último exemplo não funcionaria, pois o pacote interpret-community não pode determinar se my_own_transformer fornece um mapeamento muitos para muitos ou um para muitos ao fazer uma sequência de colunas. Apenas um parâmetro de 'transformações' ou 'feature_maps' deve ser especificado para gerar explicações brutas. Especificar ambos resultará em exceção de configuração. Valor padrão: None
|
feature_maps
|
Uma lista de mapas de recursos do recurso bruto para o gerado. Este parâmetro pode ser uma lista de matrizes numpy ou matrizes esparsas em que cada entrada de matriz (raw_index, generate_index) é o peso de cada par de recursos bruto e gerado. As outras entradas são definidas como zero. Para uma sequência de transformações [t1, t2,..., tn] gerando recursos gerados de recursos brutos, a lista de mapas de recursos corresponde aos mapas brutos para mapas gerados na mesma ordem que t1, t2 etc. Se o mapa de recursos bruto para gerado geral de t1 a tn estiver disponível, apenas esse mapa de recursos em uma lista de elemento único poderá ser passado. Apenas um parâmetro de 'transformações' ou 'feature_maps' deve ser especificado para gerar explicações brutas. Especificar ambos resultará em exceção de configuração. Valor padrão: None
|
allow_all_transformations
|
Se deve permitir muitas transformações para muitos e muitas para um. Valor padrão: None
|
workspace
Obrigatório
|
O objeto de espaço de trabalho em que os modelos e conjuntos de dados são definidos. |
model
Obrigatório
|
str ou
<xref:<xref:model that implements sklearn.predict>()> ou
<xref:sklearn.predict_proba>() ou
<xref:<xref:pipeline function>>
A ID de um modelo registrado no MMS ou em um pipeline ou modelo de aprendizado de máquina regular a ser explicado. Se um modelo for especificado, ele deverá implementar sklearn.predict() ou sklearn.predict_proba(). Se um pipeline for especificado, ele deverá incluir uma função que aceite uma segunda matriz. |
explainer_kwargs
Obrigatório
|
Os argumentos de palavra-chave juntos ao explicador escolhido não são abordados aqui. Eles serão passados como kwargs quando o explicador subjacente for inicializado. |
init_dataset
Obrigatório
|
A ID do conjunto de dados ou o conjunto de dados regular usado para inicializar o explicador (por exemplo, x_train). |
run
Obrigatório
|
A execução nessa explicação deve ser associada. |
features
Obrigatório
|
Uma lista de nomes de recursos. |
classes
Obrigatório
|
Nomes de classe como uma lista de cadeias de caracteres. A ordem dos nomes de classe deve corresponder à da saída do modelo. Necessário somente se estiver explicando o classificador. |
model_task
Obrigatório
|
Parâmetro opcional para especificar se o modelo é um modelo de classificação ou regressão. Na maioria dos casos, o tipo do modelo pode ser inferido com base na forma da saída, em que um classificador tem um método predict_proba e saída de uma matriz bidimensional, enquanto um regressor tem um método de previsão e saída de uma matriz dimensional 1. |
explain_subset
Obrigatório
|
Lista de índices de recursos. Se especificado, seleciona apenas um subconjunto dos recursos no conjunto de dados de avaliação para explicação, o que acelerará o processo de explicação quando o número de recursos for grande e o usuário já conhecer o conjunto de recursos interessados. O subconjunto pode ser os principais recursos do resumo do modelo. Não há suporte para esse argumento quando as transformações são definidas. |
transformations
Obrigatório
|
Um sklearn.compose.ColumnTransformer ou uma lista de tuplas que descrevem o nome da coluna e o transformador. Quando as transformações são fornecidas, as explicações são dos recursos antes da transformação. O formato de uma lista de transformações é o mesmo que o encontrado aqui: https://github.com/scikit-learn-contrib/sklearn-pandas. Se você estiver usando uma transformação que não está na lista de transformações sklearn.preprocessing com suporte pelo pacote interpret-community, esse parâmetro não poderá obter uma lista de mais de uma coluna como entrada para a transformação. Você pode usar as seguintes transformações sklearn.preprocessing com uma lista de colunas, pois elas já são uma para muitas ou uma para uma: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler. Exemplos de transformações que funcionam:
Um exemplo de uma transformação que gera um erro, pois ele não pode ser interpretado como um para muitos:
O último exemplo não funcionaria, pois o pacote interpret-community não pode determinar se my_own_transformer fornece um mapeamento muitos para muitos ou um para muitos ao fazer uma sequência de colunas. Apenas um parâmetro de 'transformações' ou 'feature_maps' deve ser especificado para gerar explicações brutas. Especificar ambos resultará em exceção de configuração. |
feature_maps
Obrigatório
|
list[array] ou
list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>
Uma lista de mapas de recursos do recurso bruto para o gerado. Este parâmetro pode ser uma lista de matrizes numpy ou matrizes esparsas em que cada entrada de matriz (raw_index, generate_index) é o peso de cada par de recursos bruto e gerado. As outras entradas são definidas como zero. Para uma sequência de transformações [t1, t2,..., tn] gerando recursos gerados de recursos brutos, a lista de mapas de recursos corresponde aos mapas brutos para mapas gerados na mesma ordem que t1, t2 etc. Se o mapa de recursos bruto para gerado geral de t1 a tn estiver disponível, apenas esse mapa de recursos em uma lista de elemento único poderá ser passado. Apenas um parâmetro de 'transformações' ou 'feature_maps' deve ser especificado para gerar explicações brutas. Especificar ambos resultará em exceção de configuração. |
Comentários
O MimicWrapper pode ser usado para explicar modelos de aprendizado de máquina e é particularmente eficaz com o AutoML. Por exemplo, usando a função automl_setup_model_explanations
no módulo <xref:azureml.train.automl.runtime.automl_explain_utilities>, você pode usar o MimicWrapper para calcular e visualizar a importância do recurso. Para saber mais, confira Interpretabilidade: explicações de modelo no machine learning automatizado.
No exemplo a seguir, o MimicWrapper é usado em um problema de classificação.
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)
Para saber mais sobre esse exemplo, confira este notebook.
Métodos
explain |
Explicar o comportamento de um modelo e, opcionalmente, carregar essa explicação para armazenamento e visualização. |
explain
Explicar o comportamento de um modelo e, opcionalmente, carregar essa explicação para armazenamento e visualização.
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)
Parâmetros
Nome | Description |
---|---|
explanation_types
Obrigatório
|
Uma lista de cadeias de caracteres que representam tipos de explicações desejadas. Atualmente, há suporte para 'global' e 'local'. Ambos podem ser passados de uma vez, somente uma explicação será retornada. |
eval_dataset
|
A ID do conjuntos de dados ou o conjuntos de dados regulares usados para gerar a explicação. Valor padrão: None
|
top_k
|
Limite a quantidade de dados retornados e armazenados no Histórico de execuções para os k principais recursos, quando possível. Valor padrão: None
|
upload
|
Se True, a explicação será carregada automaticamente no Histórico de execuções para armazenamento e visualização. Se uma execução não tiver sido passada na inicialização, uma será criada. Valor padrão: True
|
upload_datasets
|
Se True e nenhuma ID de conjunto de dados for transmitida, o conjunto de dados de avaliação será carregado no Armazenamento do Azure. Isso melhorará a visualização disponível na exibição da Web. Valor padrão: False
|
tag
Obrigatório
|
Uma cadeia de caracteres a ser anexada à explicação para diferenciá-la das outras após o upload. |
get_raw
|
Se True e o parâmetro Valor padrão: False
|
raw_feature_names
|
A lista de nomes de recursos brutos, substituindo nomes de recursos de engenharia do construtor. Valor padrão: None
|
experiment_name
|
O nome desejado para dar uma explicação se Valor padrão: explain_model
|
raw_eval_dataset
|
Dados brutos de avaliação a serem carregados para explicações brutas. Valor padrão: None
|
true_ys
|
Os rótulos verdadeiros para os exemplos de avaliação. Valor padrão: None
|
Retornos
Tipo | Description |
---|---|
Um objeto de explicação. |
Atributos
explainer
Obter o explicador que está sendo usado internamente pelo wrapper.
Retornos
Tipo | Description |
---|---|
O explicador que está sendo usado internamente pelo wrapper. |