Gerenciando grupos de recursos com assetframe-lib para Python (beta)

Você pode usar o ' assetframe-lib para criar, visualizar e editar informações de grupos de recursos para ativos de dados nos notebooks do watsonx.ai Studio.

Os grupos de recursos definem metadados adicionais em colunas do seu ativo de dados que podem ser usados em tarefas de tempo de execução watsonx.ai jusante. Consulte Gerenciando grupos de recursos para obter mais informações sobre como usar grupos de recursos na UI.

Configurando as bibliotecas assetframe-lib e ibm-watson-studio-lib

A biblioteca ' assetframe-lib para Python é pré-instalada e pode ser importada diretamente em um notebook no watsonx.ai Studio. No entanto, ele depende da biblioteca do ibm-watson-studio-lib As etapas a seguir descrevem como configurar ambas bibliotecas.

Para inserir o token do projeto em seu bloco de notas:

  1. Clique no ícone Mais da sua barra de ferramentas do bloco de notas e, em seguida, clique em Inserir token do projeto.

    Se existir um token do projeto, uma célula será incluída em seu bloco de notas com as informações a seguir:

    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 você receber uma mensagem informando que nenhum token do projeto existe, clique no link na mensagem para que seja redirecionado para a página Controle de acesso do projeto na qual é possível criar um token do projeto. Deve-se ser elegível para criar um token do projeto.

    Para criar um token do projeto:

    1. Na guia Gerenciar, selecione a página Controle de acesso e clique em Novo token de acesso em Tokens de acesso.
    2. Insira um nome, selecione a função Editor para o projeto e crie um token.
    3. Volte para o seu bloco de notas, clique no ícone Mais na barra de ferramentas do bloco de notas e, em seguida, clique em Inserir token do projeto.
  2. Importe assetframe-lib e inicialize-o com a instância ibm-watson-studio-lib criada.

    from assetframe_lib import AssetFrame
    AssetFrame._wslib = wslib
    

As funções e métodos assetframe-lib

A biblioteca assetframe-lib expõe um conjunto de funções e métodos que são agrupados da seguinte maneira:

Criando um quadro de ativos

Um quadro de ativo é usado para definir metadados do grupo de recursos em um ativo de dados existente ou em um pandas DataFrame.. É possível ter exatamente um grupo de recursos para cada ativo Se você criar um quadro de ativo em um pandas DataFrame,, poderá armazenar o pandas DataFrame junto com os metadados do grupo de recursos como um ativo de dados em seu projeto.

É possível usar uma das seguintes funções para criar seu quadro de ativos:

  • AssetFrame.from_data_asset(asset_name, create_default_features=False)

    Essa função cria um novo quadro de ativo que agrupa um ativo de dados existente em seu projeto. Se já houver um grupo para esse ativo, por exemplo, criado na interface com o usuário, ele será lido a partir dos metadados do ativo.

    Se o ativo já tiver descrições de coluna ou tags de coluna definidas, por exemplo, em IBM watsonx.data intelligence, essas informações estarão automaticamente disponíveis para os recursos criados.

    Parâmetros:

    • asset_name: (Necessário) O nome de um ativo de dados em seu projeto.
    • create_default_features: (Opcional) cria recursos para todas as colunas no ativo de dados.
  • AssetFrame.from_pandas(name, dataframe, create_default_features=False)

    Essa função cria um novo quadro de ativo agrupando um DataFramepandas.

    Parâmetros:

    • name: (Obrigatório) O nome do quadro de recursos. Esse nome será usado como o nome do ativo de dados se você armazenar seu grupo de recursos em seu projeto em uma etapa posterior

    • dataframe: (Obrigatório) Um pandas DataFrame que você deseja armazenar junto com informações do grupo de recursos.

    • create_default_features: (Opcional) Criar recursos para todas as colunas no quadro de dados.

      Exemplo de criação de um quadro de ativos a partir de um 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")
      

Criando, recuperando e removendo recursos.

Um recurso define metadados que podem ser usados por tarefas de tempo de execução watsonx.ai downstream. É possível criar um recurso por coluna no conjunto de dados.

É possível usar uma das seguintes funções para criar, recuperar ou remover colunas de seu quadro de ativos:

  • add_feature(column_name, role='Input')

    Essa função inclui um novo recurso em seu quadro de ativo com a função especificada

    Parâmetros:

    • column_name: (Obrigatório) O nome da coluna para a qual criar um recurso.

    • role: (Opcional) A função do recurso. Ele é padronizado para Entrada

      As funções válidas são:

      • Entrada: A entrada para um modelo de aprendizado de máquina
      • Destino: a resposta de um modelo de predição
      • Identificador: o identificador de uma linha no conjunto de dados.
  • create_default_features()

    Essa função cria recursos para todas as colunas no conjunto de dados. As funções dos recursos serão padronizadas para Entrada.

  • get_features()

    Essa função recupera todos os recursos do quadro de ativos..

  • get_feature(column_name)

    Esta função recupera o recurso para o nome da coluna fornecido.

    Parâmetros:

    • column_name: (obrigatório) o nome da cadeia da coluna para a qual criar o recurso.
  • get_features_by_role(role)

    Esta função recupera todos os recursos do quadro de dados com a função especificada.

    Parâmetros:

    • role: (Obrigatório) A função que os recursos devem ter Isso pode ser Entrada, Destino ou Identificador
  • remove_feature(feature_or_column_name)

    Esta função remove o recurso do quadro de ativos..

    Parâmetros:

    • feature_or_column_name: (Necessário) Um recurso ou o nome da coluna para remover o recurso.

Exemplo que mostra a criação de recursos para todas as colunas no conjunto de dados e a recuperação de 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')

Especificando atributos de recurso.

Os recursos especificam metadados adicionais em colunas que podem ser usadas em tarefas de tempo de execução do watsonx.ai jusante.

É possível 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 o qual o recurso está definido..

Função

A função especifica o uso pretendido do recurso em uma tarefa de tempo de execução do watsonx.ai.

As funções válidas são:

  • Input: O recurso pode ser usado como uma entrada para um modelo de tempo de execução watsonx.ai.
  • Identifier: O recurso identifica exclusivamente uma linha no conjunto de dados.
  • Target: o recurso pode ser usado como um destino em um algoritmo de previsão.

Neste momento, um recurso deve ter exatamente uma função..

É possível usar os seguintes métodos para trabalhar com a função:

  • set_roles(roles)

    Esse método define as funções do recurso.

    Parâmetros:

    • roles : (Obrigatório) As funções a serem usadas Como uma única sequência ou uma matriz de sequências..
  • get_roles()

    Este método retorna todas as funções do recurso


Exemplo que mostra como obter um recurso e configurar 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 padrão é None. Se o ativo já tiver descrições de coluna definidas, por exemplo, em IBM watsonx.data intelligence, essas informações estarão automaticamente disponíveis para o recurso.

É possível usar os métodos a seguir para trabalhar com a descrição

  • set_description(description)

    Esse método configura a descrição do recurso

    Parâmetros:

    • description: (necessário) uma sequência ou None para remover a descrição.
  • get_description()

    Este método retorna a descrição do recurso.

Informações de justiça para resultados favoráveis e desfavoráveis

É possível especificar rótulos favoráveis e desfavoráveis para um recurso com uma função Target ..

É possível usar os seguintes métodos para configurar e recuperar rótulos favoráveis ou desfavoráveis.

Resultados favoráveis

É possível usar os métodos a seguir para configurar e obter rótulos favoráveis:

  • set_favorable_labels(labels)

    Esse método configura rótulos favoráveis para o recurso..

    Parâmetros:

    • labels: (Obrigatório) Uma sequência ou lista de sequências com rótulos favoráveis.
  • get_favorable_labels()

    Esse método retorna as etiquetas favoráveis do recurso.

Resultados desfavoráveis

É possível usar os métodos a seguir para configurar e obter rótulos desfavoráveis:

  • set_unfavorable_labels(labels)

    Esse método configura rótulos desfavoráveis para o recurso..

    Parâmetros:

    • labels: (Obrigatório) Uma sequência ou lista de sequências com rótulos desfavoráveis.
  • get_unfavorable_labels()

    Este método obtém as etiquetas desfavoráveis do recurso

Exemplo que mostra a configuração de 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 de imparcialidade para grupos monitorados e de referência

Algumas colunas em seus dados podem ser propensas a viés injusto. Você pode especificar grupos monitorados e de referência para uso posterior nas tarefas do watsonx.ai Runtime. Eles podem ser especificados para os recursos com a função Input

É possível especificar valores únicos ou intervalos de valores numéricos como uma cadeia com colchetes e um valor inicial e final, por exemplo, [0,15].

É possível usar os métodos a seguir para configurar e recuperar grupos monitorados e de referência:

  • set_monitored_groups(groups)

    Este método configura grupos monitorados para o recurso..

    Parâmetros:

    • groups: (Obrigatório) Uma sequência ou lista de sequências com grupos monitorados.
  • get_monitored_groups()

    Este método obtém os grupos monitorados do recurso

  • set_reference_groups(groups)

    Este método configura grupos de referência para o recurso..

    Parâmetros:

    • groups: (Obrigatório) Uma sequência ou lista de sequências 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 de 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

É possível usar descrições de valor para especificar descrições para valores de coluna em seus dados...

É possível usar os métodos a seguir para configurar e recuperar descrições:

  • set_value_descriptions(value_descriptions)

    Este método configura descrições de valor para o recurso.

    Parâmetros:

    • value_descriptions: (Necessário) Um dicionário Pyton ou lista de dicionários do seguinte formato: {'value': '<value>', 'description': '<description>'}
  • get_value_descriptions()

    Este método retorna todas as descrições de valor do recurso..

  • get_value_description(value)

    Este método retorna a descrição do valor para o valor fornecido..

    Parâmetros:

    • value: (Obrigatório) O valor para o qual recuperar a descrição do valor.
  • add_value_description(value, description)

    Este método inclui uma descrição de valor com o valor e a descrição fornecidos para a lista de descrições de valor para o recurso

    Parâmetros:

    • value: (Obrigatório) O valor da sequência da descrição do valor..
    • description: (Obrigatório) A descrição de sequência da descrição do valor.
  • remove_value_description(value)

    Este método remove a descrição de valor com o valor fornecido da lista de descrições de valor do recurso...

    Parâmetros:

    • value: (Obrigatório) Um valor da descrição do valor a ser removido.

Exemplo que mostra como configurar descrições de valor:

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

É possível usar a receita para descrever como um recurso foi criado, por exemplo, com uma fórmula ou um fragmento de códigos. Ele é padronizado para 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 sequência ou Nenhum para remover a receita..
  • get_recipe()

    Este método retorna a receita do recurso.

Tags

É possível usar tags para anexar rótulos ou informações adicionais ao recurso. Se o ativo já tiver descrições de coluna definidas, por exemplo, em IBM watsonx.data intelligence, essas informações estarão automaticamente disponíveis para o recurso.

É possível usar os métodos a seguir para trabalhar com tags:

  • set_tags(tags)

    Este método configura as tags do recurso..

    Parâmetros:

    • tags: (Obrigatório) Como uma sequência única ou uma matriz de sequências
  • get_tags()

    Este método retorna todas as tags do recurso...

Visualizando Dados

É possível visualizar os dados de seu ativo de dados ou pandas DataFrame com informações adicionais sobre seus recursos, como informações de justiça.

Os dados são exibidos como um pandas DataFrame com informações de cabeçalho opcionais sobre funções, descrições ou receitas de recursos As informações de imparcialidade são exibidas com cores para rótulos favoráveis ou desfavoráveis, grupos monitorados e de referência.

Neste momento, é possível recuperar até 100 linhas dos dados de amostra para um ativo de dados

Use a seguinte função para visualizar dados:

  • head(num_rows=5, display_options=['role'])

    Essa função retorna as primeiras num_rows linhas do conjunto de dados em um DataFramepandas.

    Parâmetros:

    • num_rows : (Opcional) O número de linhas para recuperar.

    • display_options: (Opcional) O cabeçalho da coluna pode exibir informações adicionais para uma coluna em seu conjunto de dados.

      Use estas opções para exibir atributos de recurso:

      • 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 receita de um recurso para esta coluna

Obtendo informações de justiça

É possível recuperar as informações de justiça de todos os recursos em seu quadro de ativos como um dicionário Python . Isso inclui todos os recursos contendo grupos monitorados ou de referência (ou ambos) como atributos protegidos e o recurso de destino com rótulos favoráveis ou desfavoráveis.

Se o tipo de dado de uma coluna com informações de justiça for numérico, os valores de rótulos e grupos serão transformados em valores numéricos, se possível.

As informações de justiça podem ser usadas diretamente no AutoAI ou no AI Fairness 360.

É possível usar a função a seguir para recuperar informações de justiça de seu quadro de ativos:

  • get_fairness_info(target=None)

    Esta função retorna um dicionário Python com rótulos favoráveis e desfavoráveis da coluna de destino e atributos protegidos com grupos monitorados e de referência..

    Parâmetros:

    • target: (Opcional) O recurso de destino Se houver apenas um recurso com a função Target, ele será usado automaticamente

      Exemplo que mostra como recuperar informações de justiça:

      af.get_fairness_info()
      

      Saída mostrando informações de justiça:

      {
      '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]]
          }]
      }
      

Salvando informações do grupo de recursos

Depois de ter totalmente especificado ou atualizado seus recursos, é possível salvar a definição de grupo de recursos inteira como metadados para seu ativo de dados

Se você criou o quadro de ativos a partir de um pandas DataFrame,, um novo ativo de dados será criado no armazenamento do projeto com o nome do quadro de ativos.

É possível usar o método a seguir para armazenar informações do grupo de recursos:

  • to_data_asset(overwrite_data=False)

    Esse método salva as informações do grupo de recursos nos metadados de ativos Ele cria um novo ativo de dados, se o quadro de ativo foi criado a partir de um pandas DataFrame..

    Parâmetros:

    • overwrite_data: (Opcional) Também sobrescreva o conteúdo do ativo com os dados do quadro do ativo. O padrão é False.

Saiba Mais

Veja o projeto de exemplo Criação e uso de dados do repositório de feição no Hub de recursos.