Partilhar via


MimicWrapper Classe

Um explicador de wrapper que reduz o número de chamadas de função necessárias para utilizar o pacote de modelo de explicação.

Inicialize o MimicWrapper.

"<<que aceita um ndarray 2d :p aram explainable_model: O modelo de substituição não inicializado usado para explicar o modelo de caixa preta.

Também conhecido como modelo de estudante.

Herança
azureml._logging.chained_identity.ChainedIdentity
MimicWrapper

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

Name Description
workspace
Necessário

O objeto da área de trabalho onde os Modelos e Conjuntos de Dados são definidos.

model
Necessá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>>

O ID de modelo de um modelo registado no MMS ou um modelo ou pipeline de machine learning normal para explicar. Se for especificado um modelo, tem de implementar sklearn.predict() ou sklearn.predict_proba(). Se for especificado um pipeline, tem de incluir uma função que aceite um ndarray 2d.

explainable_model
Necessário

O modelo de substituição não inicializado utilizado para explicar o modelo de caixa preta. Também conhecido como modelo de estudante.

explainer_kwargs

Quaisquer argumentos de palavra-chave que vão com o explicador escolhido não são abordados aqui. Serão transmitidos como kwargs quando o explicador subjacente for inicializado.

Default value: None
init_dataset

O ID do conjunto de dados ou o conjunto de dados normal utilizado para inicializar o explicador (por exemplo, x_train).

Default value: None
run
Run

A execução desta explicação deve estar associada.

Default value: None
features

Uma lista de nomes de funcionalidades.

Default value: None
classes

Nomes de classes como uma lista de cadeias. A ordem dos nomes das classes deve corresponder à saída do modelo. Só é necessário se explicar o classificador.

Default value: None
model_task
str

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 do resultado, em que um classificador tem um método predict_proba e produz uma matriz bidimensional, enquanto um regressor tem um método de previsão e produz uma matriz dimensional.

Default value: ModelTask.Unknown
explain_subset

Uma lista de índices de funcionalidades. Se for especificado, o Azure seleciona apenas um subconjunto das funcionalidades no conjunto de dados de avaliação para obter explicações, o que acelerará o processo de explicação quando o número de funcionalidades for grande e já souber o conjunto de funcionalidades interessantes. O subconjunto pode ser as principais funcionalidades do resumo do modelo. Este parâmetro não é suportado quando as transformações são definidas.

Default value: None
transformations

Um sklearn.compose.ColumnTransformer ou uma lista de cadeias de identificação que descrevem o nome da coluna e o transformador. Quando são fornecidas transformações, as explicações são das funcionalidades antes da transformação. O formato de uma lista de transformações é igual ao aqui: https://github.com/scikit-learn-contrib/sklearn-pandas.

Se estiver a utilizar uma transformação que não esteja na lista de transformações sklearn.preprocessing suportadas pelo pacote interpret-community , este parâmetro não pode utilizar uma lista de mais do que uma coluna como entrada para a transformação. Pode utilizar as seguintes transformações sklearn.preprocessing com uma lista de colunas, uma vez que estas 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:


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

Um exemplo de uma transformação que geraria um erro, uma vez que não pode ser interpretado como um para muitos:


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

O último exemplo não funcionaria, uma vez que o pacote interpret-community não consegue determinar se my_own_transformer dá um mapeamento muitos a muitos ou um para muitos ao executar uma sequência de colunas.

Apenas deve ser especificado um parâmetro de "transformações" ou "feature_maps" para gerar explicações não processadas. Especificar ambos resultará numa exceção de configuração.

Default value: None
feature_maps

Uma lista de mapas de funcionalidades de funcionalidades não processadas para geradas. Este parâmetro pode ser uma lista de matrizes numpy ou matrizes dispersas em que cada entrada de matriz (raw_index, generated_index) é o peso para cada par de funcionalidades geradas não processadas. As outras entradas estão definidas como zero. Para uma sequência de transformações [t1, t2, ..., tn] que geram funcionalidades geradas a partir de funcionalidades não processadas, a lista de mapas de funcionalidades corresponde aos mapas não processados a gerados pela mesma ordem que t1, t2, etc. Se o mapa de funcionalidades não processado para gerado globalmente de t1 para tn estiver disponível, apenas esse mapa de funcionalidades numa única lista de elementos pode ser transmitido.

Apenas deve ser especificado um parâmetro de "transformações" ou "feature_maps" para gerar explicações não processadas. Especificar ambos resultará numa exceção de configuração.

Default value: None
allow_all_transformations

Se pretende permitir transformações muitos para muitos e muitos para um.

Default value: None
workspace
Necessário

O objeto da área de trabalho onde os Modelos e Conjuntos de Dados são definidos.

model
Necessário
str ou <xref:<xref:model that implements sklearn.predict>()> ou <xref:sklearn.predict_proba>() ou <xref:<xref:pipeline function>>

O ID de modelo de um modelo registado no MMS ou um modelo ou pipeline de machine learning normal para explicar. Se for especificado um modelo, tem de implementar sklearn.predict() ou sklearn.predict_proba(). Se for especificado um pipeline, tem de incluir uma função que aceite um ndarray 2d.

explainer_kwargs
Necessário

Quaisquer argumentos de palavra-chave que vão com o explicador escolhido não são abordados aqui. Serão transmitidos como kwargs quando o explicador subjacente for inicializado.

init_dataset
Necessário

O ID do conjunto de dados ou o conjunto de dados normal utilizado para inicializar o explicador (por exemplo, x_train).

run
Necessário
Run

A execução desta explicação deve estar associada.

features
Necessário

Uma lista de nomes de funcionalidades.

classes
Necessário

Nomes de classes como uma lista de cadeias. A ordem dos nomes das classes deve corresponder à saída do modelo. Só é necessário se explicar o classificador.

model_task
Necessário
str

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 do resultado, em que um classificador tem um método predict_proba e produz uma matriz bidimensional, enquanto um regressor tem um método de previsão e produz uma matriz dimensional.

explain_subset
Necessário

Lista de índices de funcionalidades. Se especificado, apenas seleciona um subconjunto das funcionalidades no conjunto de dados de avaliação para obter explicações, o que acelerará o processo de explicação quando o número de funcionalidades for grande e o utilizador já souber o conjunto de funcionalidades interessadas. O subconjunto pode ser as principais funcionalidades do resumo do modelo. Este argumento não é suportado quando as transformações são definidas.

transformations
Necessário

Um sklearn.compose.ColumnTransformer ou uma lista de cadeias de identificação que descrevem o nome da coluna e o transformador. Quando são fornecidas transformações, as explicações são das funcionalidades antes da transformação. O formato de uma lista de transformações é igual ao aqui: https://github.com/scikit-learn-contrib/sklearn-pandas.

Se estiver a utilizar uma transformação que não esteja na lista de transformações sklearn.preprocessing suportadas pelo pacote interpret-community , este parâmetro não pode utilizar uma lista de mais do que uma coluna como entrada para a transformação. Pode utilizar as seguintes transformações sklearn.preprocessing com uma lista de colunas, uma vez que estas 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:


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

Um exemplo de uma transformação que geraria um erro, uma vez que não pode ser interpretado como um para muitos:


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

O último exemplo não funcionaria, uma vez que o pacote interpret-community não consegue determinar se my_own_transformer dá um mapeamento muitos a muitos ou um para muitos ao executar uma sequência de colunas.

Apenas deve ser especificado um parâmetro de "transformações" ou "feature_maps" para gerar explicações não processadas. Especificar ambos resultará numa exceção de configuração.

feature_maps
Necessá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 funcionalidades de funcionalidades não processadas para geradas. Este parâmetro pode ser uma lista de matrizes numpy ou matrizes dispersas em que cada entrada de matriz (raw_index, generated_index) é o peso para cada par de funcionalidades geradas não processadas. As outras entradas estão definidas como zero. Para uma sequência de transformações [t1, t2, ..., tn] que geram funcionalidades geradas a partir de funcionalidades não processadas, a lista de mapas de funcionalidades corresponde aos mapas não processados a gerados pela mesma ordem que t1, t2, etc. Se o mapa de funcionalidades não processado para gerado globalmente de t1 para tn estiver disponível, apenas esse mapa de funcionalidades numa única lista de elementos pode ser transmitido.

Apenas deve ser especificado um parâmetro de "transformações" ou "feature_maps" para gerar explicações não processadas. Especificar ambos resultará numa exceção de configuração.

Observações

O MimicWrapper pode ser utilizado para explicar modelos de machine learning e é particularmente eficaz em conjunto com o AutoML. Por exemplo, ao utilizar a automl_setup_model_explanations função no <xref:azureml.train.automl.runtime.automl_explain_utilities> módulo, pode utilizar o MimicWrapper para calcular e visualizar a importância das funcionalidades. Para obter mais informações, veja Interpretability: model explanations in automated machine learning (Interpretabilidade: explicações de modelos no machine learning automatizado).

No exemplo seguinte, o MimicWrapper é utilizado num 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 obter mais informações sobre este exemplo, veja este bloco de notas.

Métodos

explain

Explique o comportamento de um modelo e, opcionalmente, carregue essa explicação para armazenamento e visualização.

explain

Explique o comportamento de um modelo e, opcionalmente, carregue 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

Name Description
explanation_types
Necessário

Uma lista de cadeias que representam tipos de explicações pretendidas. Atualmente, são suportados "global" e "local". Ambos podem ser transmitidos de uma só vez; apenas será devolvida uma explicação.

eval_dataset

O ID do conjunto de dados ou o conjunto de dados normal utilizado para gerar a explicação.

Default value: None
top_k
int

Limite a quantidade de dados devolvidos e armazenados no Histórico de Execuções para as principais funcionalidades k, sempre que possível.

Default value: None
upload

Se For Verdadeiro, a explicação é carregada automaticamente para o Histórico de Execuções para armazenamento e visualização. Se uma execução não tiver sido transmitida na inicialização, é criada uma.

Default value: True
upload_datasets

Se estiver definido como Verdadeiro e não forem transmitidos IDs de conjuntos de dados, o conjunto de dados de avaliação será carregado para o armazenamento do Azure. Isto irá melhorar a visualização disponível na vista Web.

Default value: False
tag
Necessário
str

Uma cadeia para anexar à explicação para a distinguir de outras pessoas após o carregamento.

get_raw

Se Verdadeiro e o parâmetro feature_maps tiver sido transmitido durante a inicialização, a explicação devolvida será para as funcionalidades não processadas. Se for ou não for especificado falso, a explicação será para os dados exatamente à medida que são transmitidos.

Default value: False
raw_feature_names

A lista de nomes de funcionalidades não processados, substituindo os nomes das funcionalidades concebidas do construtor.

Default value: None
experiment_name
str

O nome pretendido para dar uma explicação se upload for Verdadeiro, mas não tiver sido transmitida nenhuma execução durante a inicialização

Default value: explain_model
raw_eval_dataset

Dados de avaliação não processados a carregar para obter explicações não processadas.

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

As etiquetas verdadeiras para os exemplos de avaliação.

Default value: None

Devoluções

Tipo Description

Um objeto de explicação.

Atributos

explainer

Obtenha o explicador que está a ser utilizado internamente pelo wrapper.

Devoluções

Tipo Description

O explicador que está a ser utilizado internamente pelo wrapper.