È possibile utilizzare il 'assetframe-lib
per creare, visualizzare e modificare le informazioni sui gruppi di caratteristiche per le risorse di dati nei blocchi note di watsonx.ai Studio.
I gruppi di funzioni definiscono metadati aggiuntivi sulle colonne dell'asset di dati che possono essere utilizzati nelle attività a valle di watsonx.ai Runtime. Vedi Gestione dei gruppi di funzioni per ulteriori informazioni sull'utilizzo dei gruppi di funzioni nell'IU.
Impostazione delle librerie assetframe-lib
e ibm-watson-studio-lib
La libreria 'assetframe-lib
per Python è preinstallata e può essere importata direttamente in un notebook in watsonx.ai Studio. Tuttavia, si basa sulla libreria ibm-watson-studio-lib
. La seguente procedura descrive come impostare entrambe le librerie.
Per inserire il token del progetto nel notebook:
Fare clic sull'icona Altro sulla barra degli strumenti del notebook, quindi fare clic su Inserisci token progetto.
Se esiste un token del progetto, viene aggiunta una cella al notebook con le seguenti informazioni:
from ibm_watson_studio_lib import access_project_or_space wslib = access_project_or_space({"token":"<ProjectToken>"})
<ProjectToken>
è il valore del token di progetto.Se viene indicato in un messaggio che non esiste alcun token di progetto, fare clic sul link nel messaggio da reindirizzare alla pagina Controllo accessi del progetto in cui è possibile creare un token di progetto. È necessario essere idonei per creare un token del progetto.
Per creare un token di progetto:
- Dalla scheda Manage , selezionare la pagina Access Control e fare clic su New access token in Access tokens.
- Immettere un nome, selezionare il ruolo Editor per il progetto e creare un token.
- Tornare al blocco note, fare clic su Altro sulla barra degli strumenti del blocco note e fare clic su Inserisci token progetto.
Importare
assetframe-lib
e inizializzarlo con l'istanzaibm-watson-studio-lib
creata.from assetframe_lib import AssetFrame AssetFrame._wslib = wslib
Funzioni e metodi assetframe - lib
La libreria assetframe - lib espone una serie di funzioni e metodi raggruppati nel seguente modo:
Creazione di un frame di asset
Un frame di asset viene utilizzato per definire i metadati del gruppo di funzioni su un asset di dati esistente o su un pandas DataFrame. È possibile avere esattamente un gruppo di funzioni per ogni asset. Se si crea una struttura di risorse su un panda DataFrame, è possibile memorizzare il panda DataFrame insieme ai metadati del gruppo di caratteristiche come risorsa di dati nel progetto.
È possibile utilizzare una delle seguenti funzioni per creare il frame di asset:
AssetFrame.from_data_asset(asset_name, create_default_features=False)
Questa funzione crea un nuovo frame di asset che racchiude un asset di dati esistente nel progetto. Se esiste già un gruppo di funzioni per questo asset, ad esempio creato nell'interfaccia utente, viene letto dai metadati dell'asset.
Se la risorsa ha già delle descrizioni di colonna o dei tag di colonna definiti, ad esempio in IBM Knowledge Catalog, queste informazioni saranno automaticamente disponibili per le caratteristiche create.
Parametri:
asset_name
: (obbligatorio) il nome di un asset di dati nel progetto.create_default_features
: (Facoltativo) Crea funzioni per tutte le colonne nell'asset di dati.
AssetFrame.from_pandas(name, dataframe, create_default_features=False)
Questa funzione crea un nuovo frame di asset che racchiude un panda DataFrame.
Parametri:
name
: (Obbligatorio) Il nome del frame dell'asset. Questo nome verrà utilizzato come nome dell'asset di dati se si memorizza il gruppo di funzioni nel progetto in un passo successivo.dataframe
: (obbligatorio) un panda DataFrame che si desidera memorizzare insieme alle informazioni del gruppo di funzioni.create_default_features
: (Facoltativo) Crea funzioni per tutte le colonne nel frame di dati.Esempio di creazione di un asset frame da un 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")
Creazione, richiamo e rimozione di funzioni
Una caratteristica definisce i metadati che possono essere utilizzati dai task di watsonx.ai Runtime a valle. È possibile creare una funzione per colonna nel dataset.
È possibile utilizzare una delle seguenti funzioni per creare, richiamare o rimuovere le colonne dal frame dell'asset:
add_feature(column_name, role='Input')
Questa funzione aggiunge una nuova funzione al frame dell'asset con il ruolo fornito.
Parametri:
column_name
: (Obbligatorio) Il nome della colonna per cui creare una funzione.role
: (Facoltativo) Il ruolo della funzione. Il valore predefinito è Input.I ruoli validi sono:
- Input: l'input per un modello di machine learning
- Destinazione: l'obiettivo di un modello di previsione
- Identificativo: l'identificativo di una riga nel dataset.
- Input: l'input per un modello di machine learning
create_default_features()
Questa funzione crea funzioni per tutte le colonne nel dataset. I ruoli delle funzioni verranno impostati per default su Input.
get_features()
Questa funzione richiama tutte le funzioni del frame di asset.
get_feature(column_name)
Questa funzione richiama la funzione per il nome colonna fornito.
Parametri:
column_name
: (Obbligatorio) Il nome stringa della colonna per cui creare la funzione.
get_features_by_role(role)
Questa funzione richiama tutte le funzioni del frame di dati con il ruolo specificato.
Parametri:
role
: (Obbligatorio) Il ruolo che le funzioni devono avere. Può essere Input, Destinazione o Identificativo.
remove_feature(feature_or_column_name)
Questa funzione rimuove l'elemento dal frame dell'asset.
Parametri:
feature_or_column_name
: (obbligatorio) una funzione o il nome della colonna per cui rimuovere la funzione.
Esempio che mostra la creazione di funzioni per tutte le colonne nel dataset e il richiamo di una di queste colonne per ulteriori specifiche:
# 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')
Specifica degli attributi della funzione
Le funzioni specificano metadati aggiuntivi sulle colonne che possono essere utilizzati nelle attività a valle di watsonx.ai Runtime.
È possibile utilizzare la seguente funzione per richiamare la colonna per cui è definita la funzione:
get_column_name()
Questa funzione richiama il nome della colonna per cui è definita la funzione.
Ruolo
Il ruolo specifica l'uso previsto della funzione in un task di watsonx.ai Runtime.
I ruoli validi sono:
Input
: la caratteristica può essere utilizzata come input per un modello watsonx.ai Runtime.Identifier
: la funzione identifica in modo univoco una riga nel dataset.Target
: la funzione può essere utilizzata come obiettivo in un algoritmo di previsione.
In questo momento, una funzione deve avere esattamente un ruolo.
È possibile utilizzare i metodi seguenti per gestire il ruolo:
set_roles(roles)
Questo metodo imposta i ruoli della funzione.
Parametri:
roles
: (obbligatorio) I ruoli da utilizzare. Come una singola stringa o un array di stringhe.
get_roles()
Questo metodo restituisce tutti i ruoli della funzione.
Esempio che mostra come ottenere una funzione e impostare un ruolo:
# 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')
Descrizione
Una descrizione facoltativa della funzione. It defaults to None
.If the asset has already column descriptions defined, for example in IBM Knowledge Catalog, this information will be automatically available for the feature.
È possibile utilizzare i metodi seguenti per gestire la descrizione.
set_description(description)
Questo metodo imposta la descrizione della funzione.
Parametri:
description
: (Obbligatorio) Una stringa oNone
per rimuovere la descrizione.
get_description()
Questo metodo restituisce la descrizione della funzione.
Informazioni sulla correttezza per risultati favorevoli e sfavorevoli
È possibile specificare etichette favorevoli e sfavorevoli per una funzione con un ruolo Target
.
È possibile utilizzare i seguenti metodi per impostare e richiamare etichette favorevoli o sfavorevoli.
Risultati favorevoli
È possibile utilizzare i seguenti metodi per impostare e ottenere etichette favorevoli:
set_favorable_labels(labels)
Questo metodo imposta le etichette favorevoli per la funzione.
Parametri:
labels
: (Obbligatorio) Una stringa o un elenco di stringhe con etichette favorevoli.
get_favorable_labels()
Questo metodo restituisce le etichette favorevoli della funzione.
Risultati sfavorevoli
È possibile utilizzare i seguenti metodi per impostare e ottenere etichette sfavorevoli:
set_unfavorable_labels(labels)
Questo metodo imposta etichette sfavorevoli per la funzione.
Parametri:
labels
: (Obbligatorio) Una stringa o un elenco di stringhe con etichette sfavorevoli.
get_unfavorable_labels()
Questo metodo ottiene le etichette sfavorevoli della funzione.
Esempio che mostra l'impostazione di etichette favorevoli e sfavorevoli:
# 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")
Informazioni sulla correttezza per i gruppi monitorati e di riferimento
Alcune colonne nei dati potrebbero essere soggette a pregiudizi non corretti. È possibile specificare i gruppi monitorati e di riferimento per un ulteriore utilizzo nei task di watsonx.ai Runtime. Possono essere specificate per funzioni con il ruolo Input
.
È possibile specificare valori singoli o intervalli di valori numerici come una stringa con parentesi quadre e un valore iniziale e finale, ad esempio [0,15]
.
È possibile utilizzare i seguenti metodi per impostare e richiamare i gruppi monitorati e di riferimento:
set_monitored_groups(groups)
Questo metodo imposta i gruppi monitorati per la funzionalità.
Parametri:
groups
: (Obbligatorio) Una stringa o un elenco di stringhe con gruppi monitorati.
get_monitored_groups()
Questo metodo richiama i gruppi monitorati della funzione.
set_reference_groups(groups)
Questo metodo imposta i gruppi di riferimento per la funzione.
Parametri:
groups
: (Obbligatorio) Una stringa o un elenco di stringhe con gruppi di riferimento.
get_reference_groups()
Questo metodo ottiene i gruppi di riferimento della funzione.
Esempio che mostra l'impostazione dei gruppi monitorati e di riferimento:
# 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]")
Descrizioni dei valori
È possibile utilizzare le descrizioni dei valori per specificare le descrizioni dei valori delle colonne nei dati.
È possibile utilizzare i seguenti metodi per impostare e richiamare le descrizioni:
set_value_descriptions(value_descriptions)
Questo metodo imposta le descrizioni dei valori per la funzione.
Parametri:
value_descriptions
: (Obbligatorio) Un dizionario Pyton o un elenco di dizionari del formato seguente:{'value': '<value>', 'description': '<description>'}
get_value_descriptions()
Questo metodo restituisce tutte le descrizioni dei valori della funzione.
get_value_description(value)
Questo metodo restituisce la descrizione del valore per il valore fornito.
Parametri:
value
: (obbligatorio) il valore per cui richiamare la descrizione del valore.
add_value_description(value, description)
Questo metodo aggiunge una descrizione valore con il valore fornito e la descrizione all'elenco di descrizioni valore per la funzione.
Parametri:
value
: (Obbligatorio) Il valore stringa della descrizione valore.description
: (Obbligatorio) La descrizione stringa della descrizione valore.
remove_value_description(value)
Questo metodo elimina la descrizione del valore con il valore fornito dall'elenco di descrizioni del valore della funzione.
Parametri:
value
: (Obbligatorio) Un valore della descrizione del valore da eliminare.
Esempio che mostra come impostare le descrizioni dei valori:
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)
Istruzioni specifiche
È possibile utilizzare la ricetta per descrivere come è stata creata una funzione, ad esempio con una formula o un frammento di codice. Il valore predefinito è None
.
Puoi utilizzare i seguenti metodi per lavorare con la ricetta.
set_recipe(recipe)
Questo metodo imposta la ricetta della funzione.
Parametri:
recipe
: (obbligatorio) una stringa o Nessuno per rimuovere la ricetta.
get_recipe()
Questo metodo restituisce la ricetta della funzione.
Anteprima dei dati
È possibile visualizzare l'anteprima dei dati dell'asset di dati o dei panda DataFrame con ulteriori informazioni sulle proprie funzioni, come le informazioni sulla correttezza.
I dati vengono visualizzati come un DataFrame di panda con informazioni facoltative sull'intestazione relative ai ruoli della funzione, alle descrizioni o alle ricette. Le informazioni sulla correttezza vengono visualizzate con la colorazione per le etichette favorevoli o sfavorevoli, monitorate e i gruppi di riferimento.
In questo momento, è possibile recuperare fino a 100 righe di dati campione per un asset di dati.
Utilizzare la seguente funzione per visualizzare l'anteprima dei dati:
head(num_rows=5, display_options=['role'])
Questa funzione restituisce le prime
num_rows
righe del data set in un panda DataFrame.Parametri:
num_rows
: (facoltativo) il numero di righe da richiamare.display_options
: (Facoltativo) L'intestazione della colonna può visualizzare ulteriori informazioni per una colonna nel dataset.Utilizzare queste opzioni per visualizzare gli attributi della funzione:
role
: visualizza il ruolo di una funzione per questa colonna.description
: visualizza la descrizione di una funzione per questa colonna.recipe
: visualizza la ricetta di una funzione per questa colonna.
Acquisizione delle informazioni sulla correttezza
È possibile richiamare le informazioni sulla correttezza di tutte le funzioni nel frame di asset come dizionario Python . Ciò include tutte le funzioni che contengono gruppi di riferimento o monitorati (o entrambi) come attributi protetti e la funzione di destinazione con etichette favorevoli o sfavorevoli.
Se il tipo di dati di una colonna con informazioni sulla correttezza è numerico, i valori delle etichette e dei gruppi vengono trasformati, se possibile, in valori numerici.
Le informazioni sulla correttezza possono essere utilizzate direttamente in AutoAI o AI Fairness 360.
È possibile utilizzare la seguente funzione per richiamare le informazioni sulla correttezza del frame di asset:
get_fairness_info(target=None)
Questa funzione restituisce un dizionario Python con etichette favorevoli e sfavorevoli della colonna di destinazione e attributi protetti con gruppi monitorati e di riferimento.
Parametri:
target: (Facoltativo) La funzione di destinazione Se è presente una sola funzione con il ruolo
Target
, verrà utilizzata automaticamente.Esempio che mostra come richiamare le informazioni sulla correttezza:
af.get_fairness_info()
Output che mostra le informazioni di correttezza:
{ '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]] }] }
Salvataggio delle informazioni sul gruppo di funzioni
Dopo aver specificato o aggiornato completamente le funzioni, è possibile salvare l'intera definizione del gruppo di funzioni come metadati per l'asset di dati.
Se si è creato l'asset frame da un pandas DataFrame,, verrà creato un nuovo asset di dati nell'archivio del progetto con il nome dell'asset frame.
È possibile utilizzare il metodo seguente per memorizzare le informazioni sul proprio gruppo di funzioni:
to_data_asset(overwrite_data=False)
Questo metodo salva le informazioni sul gruppo di funzioni nei metadati degli asset. Crea un nuovo asset di dati, se il frame dell'asset è stato creato da un pandas DataFrame.
Parametri:
overwrite_data
: (Facoltativo) Sovrascrivere anche il contenuto dell'asset con i dati dal frame dell'asset. Il valore predefinito èFalse
.
Ulteriori informazioni
Consultare il progetto di esempio Creazione e utilizzo dei dati dell'archivio funzioni nell'hub risorse.
Argomento principale: Caricamento e accesso ai dati in un blocco note