Gerenciamento de grupos de recursos com o assetframe-lib para o Python
Você pode usar o assetframe-lib para criar, visualizar e editar informações de grupos de recursos para ativos de dados em cadernos do Watson Studio.
Os grupos de características definem metadados adicionais nas colunas do seu ativo de dados que podem ser utilizados em tarefas posteriores do Machine Learning. Consulte Gerenciamento de grupos de recursos para obter mais informações sobre como usar grupos de recursos na interface do usuário.
Configurando as assetframe-lib bibliotecas ibm-watson-studio-lib e
A assetframe-lib biblioteca para o ` Python ` vem pré-instalada e pode ser importada diretamente em um notebook no ` Watson Studio `. No entanto, depende da ibm-watson-studio-lib biblioteca. As etapas a seguir descrevem como configurar ambas as bibliotecas.
Para inserir o token do projeto no seu notebook:
Clique no ícone “Mais” na barra de ferramentas do seu caderno e, em seguida, clique em “Inserir token do projeto ”.
Se houver um token de projeto, será adicionada uma célula ao seu caderno com as seguintes informações:
from ibm_watson_studio_lib import access_project_or_space wslib = access_project_or_space({"token":"<ProjectToken>"})<ProjectToken>é o valor do token do projeto.Se receber uma mensagem informando que não existe nenhum token de projeto, clique no link da mensagem para ser redirecionado à página de Controle de Acesso do projeto, onde poderá criar um token de projeto. Você deve estar habilitado para criar um token de projeto.
Para criar um token de projeto:
- Na guia Gerenciar, selecione a página Controle de acesso e clique em Novo token de acesso na seção Tokens de acesso.
- Digite um nome, selecione a função de Editor para o projeto e crie um token.
- Volte ao seu caderno, clique no ícone “Mais” na barra de ferramentas do caderno e, em seguida, clique em “Inserir token do projeto ”.
Importe-o
assetframe-libe inicialize-o com a instânciaibm-watson-studio-libcriada.from assetframe_lib import AssetFrame AssetFrame._wslib = wslib
As funções e métodos da assetframe-lib
A biblioteca assetframe-lib disponibiliza um conjunto de funções e métodos agrupados da seguinte forma:
Criação de um quadro de recursos
Uma estrutura de ativos é usada para definir metadados de grupos de características em um ativo de dados existente ou em um objeto ` DataFrame ` do pandas. Você pode ter exatamente um grupo de recursos para cada ativo. Se você criar um quadro de ativos em um pandas DataFrame,, poderá armazenar o pandas DataFrame juntamente com os metadados do grupo de recursos como um ativo de dados em seu projeto.
Você pode usar uma das seguintes funções para criar o quadro do seu recurso:
AssetFrame.from_data_asset(asset_name, create_default_features=False)Esta função cria um novo quadro de ativo que envolve um ativo de dados existente no seu projeto. Se já existir um grupo de recursos para esse ativo, por exemplo, criado na interface do usuário, ele será lido a partir dos metadados do ativo.
Parâmetros:
asset_name: (Obrigatório) O nome de um ativo de dados no seu projeto.create_default_features: (Opcional) Cria características para todas as colunas do conjunto de dados.
AssetFrame.from_pandas(name, dataframe, create_default_features=False)Esta função cria um novo objeto AssetFrame que envolve um objeto ` DataFrame ` do pandas.
Parâmetros:
name: (Obrigatório) O nome do quadro do recurso. Esse nome será usado como nome do ativo de dados caso você armazene seu grupo de recursos no projeto em uma etapa posterior.dataframe: (Obrigatório) Um objeto ` DataFrame ` do pandas que você deseja armazenar juntamente com as informações do grupo de características.create_default_features: (Opcional) Crie características para todas as colunas do dataframe.Exemplo de criação de um quadro de ativos a partir de um objeto `pandas. DataFrame: `
# Create an asset frame from a pandas DataFrame and set # the name of the asset frame. af = AssetFrame.from_pandas(dataframe=credit_risk_df, name="Credit Risk Training Data")
Criação, recuperação e remoção de recursos
Uma funcionalidade define metadados que podem ser utilizados por tarefas posteriores do Machine Learning. Você pode criar uma característica por coluna no seu conjunto de dados.
Você pode usar uma das seguintes funções para criar, recuperar ou remover colunas do seu quadro de ativos:
add_feature(column_name, role='Input')Esta função adiciona um novo recurso ao quadro do seu ativo com a função especificada.
Parâmetros:
column_name: (Obrigatório) O nome da coluna para a qual se deseja criar um recurso.role: (Opcional) A função do recurso. O padrão é " Entrada ".As funções válidas são:
- Entrada : A entrada para um modelo de aprendizado de máquina
- Alvo : O alvo de um modelo de previsão
- Identificador : O identificador de uma linha no seu conjunto de dados.
- Entrada : A entrada para um modelo de aprendizado de máquina
create_default_features()Esta função cria características para todas as colunas do seu conjunto de dados. O papel dos recursos será, por padrão, " Entrada ".
get_features()Esta função recupera todas as características do quadro do ativo.
get_feature(column_name)Esta função recupera a propriedade correspondente ao nome da coluna especificado.
Parâmetros:
column_name: (Obrigatório) O nome da coluna para a qual se deseja criar o recurso.
get_features_by_role(role)Esta função recupera todas as características do dataframe com a função especificada.
Parâmetros:
role: (Obrigatório) A função que os recursos devem desempenhar. Pode ser uma entrada, um destino ou um identificador.
remove_feature(feature_or_column_name)Esta função remove o recurso do quadro do ativo.
Parâmetros:
feature_or_column_name: (Obrigatório) Um elemento ou o nome da coluna da qual se deseja remover o elemento.
Exemplo que mostra como criar características para todas as colunas do conjunto de dados e recuperar uma dessas colunas para especificações adicionais:
# Create features for all columns in the data set and retrieve a column
# for further specifications.
af.create_default_features()
risk_feat = af.get_feature('Risk')
Especificação dos atributos das características
Os recursos especificam metadados adicionais nas colunas que podem ser utilizados em tarefas posteriores do Machine Learning.
Você pode usar a seguinte função para recuperar a coluna para a qual o recurso está definido:
get_column_name()Esta função recupera o nome da coluna para a qual o recurso está definido.
Função
A função especifica o uso pretendido do recurso em uma tarefa do Machine Learning.
As funções válidas são:
Input: A característica pode ser usada como entrada para um modelo de análise de risco de crédito ( Machine Learning ).Identifier: Esse campo identifica de forma exclusiva uma linha no conjunto de dados.Target: A característica pode ser utilizada como variável de destino em um algoritmo de previsão.
Neste momento, uma funcionalidade deve ter exatamente uma função.
Você pode usar os seguintes métodos para trabalhar com a função:
set_roles(roles)Este método define as funções do recurso.
Parâmetros:
roles: (Obrigatório) As funções a serem utilizadas. Pode ser uma única string ou uma matriz de strings.
get_roles()Este método retorna todas as funções do recurso.
Exemplo que mostra como obter uma funcionalidade e definir uma função:
# Set the role of the feature 'Risk' to 'Target' to use it as a target in a prediction model.
risk_feat = af.get_feature('Risk')
risk_feat.set_roles('Target')
Descrição
Uma descrição opcional do recurso. O valor padrão é None.
Você pode usar os métodos a seguir para trabalhar com a descrição.
set_description(description)Este método define a descrição do recurso.
Parâmetros:
description: (Obrigatório) Uma string ouNonepara remover a descrição.
get_description()Este método retorna a descrição do recurso.
Informações sobre equidade para resultados favoráveis e desfavoráveis
Você pode definir rótulos favoráveis e desfavoráveis para um elemento por meio de uma Target função.
Você pode usar os métodos a seguir para definir e recuperar rótulos favoráveis ou desfavoráveis.
Resultados favoráveis
Você pode usar os seguintes métodos para definir e obter rótulos favoráveis:
set_favorable_labels(labels)Este método define rótulos favoráveis para a característica.
Parâmetros:
labels: (Obrigatório) Uma sequência de caracteres ou uma lista de sequências de caracteres com rótulos positivos.
get_favorable_labels()Este método retorna os rótulos favoráveis da característica.
Resultados desfavoráveis
Você pode usar os seguintes métodos para definir e obter rótulos desfavoráveis:
set_unfavorable_labels(labels)Este método atribui rótulos desfavoráveis à característica.
Parâmetros :
labels: (Obrigatório) Uma sequência de caracteres ou uma lista de sequências de caracteres com rótulos indesejáveis.
get_unfavorable_labels()Este método obtém os rótulos desfavoráveis da característica.
Exemplo que mostra como definir rótulos favoráveis e desfavoráveis:
# Set favorable and unfavorable labels for the target feature 'Risk'.
risk_feat = af.get_feature('Risk')
risk_feat.set_favorable_labels("No Risk")
risk_feat.set_unfavorable_labels("Risk")
Informações sobre equidade para grupos monitorados e de referência
Algumas colunas dos seus dados podem estar sujeitas a um viés injustificado. Você pode definir grupos monitorados e de referência para uso posterior nas tarefas do Machine Learning. Elas podem ser especificadas para recursos com a função Input.
Você pode especificar valores únicos ou intervalos de valores numéricos como uma sequência de caracteres entre colchetes, indicando os valores inicial e final, por exemplo [0,15].
Você pode usar os seguintes métodos para definir e recuperar grupos monitorados e de referência:
set_monitored_groups(groups)Este método define os grupos monitorados para o recurso.
Parâmetros :
groups: (Obrigatório) Uma string ou lista de strings com os grupos monitorados.
get_monitored_groups()Este método obtém os grupos monitorados do recurso.
set_reference_groups(groups)Este método define grupos de referência para o recurso.
Parâmetros :
groups: (Obrigatório) Uma string ou lista de strings com grupos de referência.
get_reference_groups()Este método obtém os grupos de referência do recurso.
Exemplo que mostra a configuração dos grupos monitorados e de referência:
# Set monitored and reference groups for the features 'Sex' and 'Age'.
sex_feat = af.get_feature("Sex")
sex_feat.set_reference_groups("male")
sex_feat.set_monitored_groups("female")
age_feat = af.get_feature("Age")
age_feat.set_monitored_groups("[0,25]")
age_feat.set_reference_groups("[26,80]")
Descrições de valores
Você pode usar descrições de valores para definir descrições para os valores das colunas nos seus dados.
Você pode usar os seguintes métodos para definir e recuperar descrições:
set_value_descriptions(value_descriptions)Este método define as descrições dos valores para o recurso.
Parâmetros:
value_descriptions: (Obrigatório) Um dicionário Python ou uma lista de dicionários no seguinte formato:{'value': '<value>', 'description': '<description>'}
get_value_descriptions()Este método retorna todas as descrições dos valores do recurso.
get_value_description(value)Este método retorna a descrição do valor fornecido.
Parâmetros :
value: (Obrigatório) O valor cuja descrição deve ser recuperada.
add_value_description(value, description)Este método adiciona uma descrição de valor com o valor e a descrição fornecidos à lista de descrições de valor do recurso.
Parâmetros :
value: (Obrigatório) O valor da descrição do valor na forma de string.description: (Obrigatório) A descrição do valor na forma de string.
remove_value_description(value)Este método remove a descrição de valor com o valor especificado da lista de descrições de valor do recurso.
Parâmetros :
value: (Obrigatório) O valor da descrição do valor a ser removido.
Exemplo que mostra como definir descrições de valores:
plan_feat = af.get_feature("InstallmentPlans")
val_descriptions = [
{'value': 'stores',
'description': 'customer has additional business installment plan'},
{'value': 'bank',
'description': 'customer has additional personal installment plan'},
{'value': 'none',
'description': 'customer has no additional installment plan'}
]
plan_feat.set_value_descriptions(val_descriptions)
Receita
Você pode usar a receita para descrever como um recurso foi criado, por exemplo, com uma fórmula ou um trecho de código. O valor padrão é None.
Você pode usar os seguintes métodos para trabalhar com a receita.
set_recipe(recipe)Este método define a receita do recurso.
Parâmetros :
recipe: (Obrigatório) Uma string ou None para remover a receita.
get_recipe()Este método retorna a receita do recurso.
Visualização dos dados
Você pode visualizar os dados do seu conjunto de dados ou usar o pandas DataFrame, que fornece informações adicionais sobre suas características, como dados de equidade.
Os dados são exibidos como um objeto ` DataFrame ` do pandas, com informações opcionais no cabeçalho sobre as funções das características, descrições ou receitas. As informações sobre equidade são apresentadas com cores diferentes para os rótulos favoráveis ou desfavoráveis, grupos monitorados e grupos de referência.
No momento, é possível recuperar até 100 linhas de dados de amostra para um ativo de dados.
Use a seguinte função para visualizar os dados:
head(num_rows=5, display_options=['role'])Esta função retorna as primeiras
num_rowslinhas do conjunto de dados em um objeto ` DataFrame ` do pandas.Parâmetros :
num_rows: (Opcional) O número de linhas a serem recuperadas.display_options: (Opcional) O cabeçalho da coluna pode exibir informações adicionais sobre uma coluna do seu conjunto de dados.Use estas opções para exibir os atributos dos elementos:
role: Exibe a função de um recurso para esta coluna.description: Exibe a descrição de um recurso para esta coluna.recipe: Exibe a fórmula de um recurso para esta coluna.
Obter informações sobre equidade
Você pode recuperar as informações de equidade de todas as características do seu quadro de ativos como um dicionário do tipo ` Python `. Isso inclui todas as características que contenham grupos monitorados ou de referência (ou ambos) como atributos protegidos, bem como a característica-alvo com rótulos favoráveis ou desfavoráveis.
Se o tipo de dados de uma coluna com informações de equidade for numérico, os valores das etiquetas e dos grupos são convertidos em valores numéricos, se possível.
As informações sobre equidade podem ser utilizadas diretamente no AutoAI ou no AI Fairness 360.
Você pode usar a seguinte função para recuperar informações de equidade do seu quadro de ativos:
get_fairness_info(target=None)Esta função retorna um dicionário do tipo ` Python ` contendo os rótulos "favorável" e "desfavorável" da coluna de destino e os atributos protegidos com os grupos "monitorado" e "referência".
Parâmetros :
alvo: (Opcional) O recurso de destino. Se houver apenas um recurso com a função
Target, ele será utilizado automaticamente.Exemplo que mostra como recuperar informações sobre equidade:
af.get_fairness_info()Saída exibindo informações sobre equidade:
{ 'favorable_labels': ['No Risk'], 'unfavorable_labels': ['Risk'], 'protected_attributes': [ {'feature': 'Sex', 'monitored_group': ['female'], 'reference_group': ['male']}, {'feature': 'Age', 'monitored_group': [[0.0, 25]], 'reference_group': [[26, 80]] }] }
Salvar informações do grupo de recursos
Depois de especificar ou atualizar completamente suas características, você pode salvar toda a definição do grupo de características como metadados para o seu ativo de dados.
Se você criou o quadro de ativos a partir de um arquivo do pandas DataFrame,, um novo ativo de dados será criado no armazenamento do projeto com o nome do quadro de ativos.
Você pode usar o método a seguir para armazenar as informações do seu grupo de recursos:
to_data_asset(overwrite_data=False)Este método salva as informações do grupo de recursos nos metadados dos ativos. Isso cria um novo conjunto de dados, caso o quadro de dados tenha sido criado a partir de um objeto ` DataFrame ` do pandas.
Parâmetros :
overwrite_data: (Opcional) Substitua também o conteúdo do recurso pelos dados do quadro do recurso. O valor padrão éFalse.
Saiba mais
Consulte o projeto de exemplo “Criação e uso de dados do Feature Store” no Centro de Recursos.