Puedes utilizar el ' assetframe-lib
' para crear, ver y editar información de grupos de características para los activos de datos en los cuadernos de watsonx.ai Studio.
Los grupos de características definen metadatos adicionales sobre columnas de su activo de datos que pueden utilizarse en tareas posteriores de watsonx.ai Runtime. Consulte Gestión de grupos de características para obtener más información sobre el uso de grupos de características en la interfaz de usuario.
Configuración de las bibliotecas assetframe-lib
y ibm-watson-studio-lib
La biblioteca ' assetframe-lib
' para Python está preinstalada y puede importarse directamente en un cuaderno en watsonx.ai Studio. Sin embargo, se basa en la biblioteca de ibm-watson-studio-lib
. Los pasos siguientes describen cómo configurar ambas bibliotecas.
Para insertar la señal del proyecto en el cuaderno:
Pulse el icono Más de la barra de herramientas del cuaderno y, a continuación, pulse Insertar señal de proyecto.
Si existe una señal de proyecto, se añade una celda al cuaderno con la información siguiente:
from ibm_watson_studio_lib import access_project_or_space wslib = access_project_or_space({"token":"<ProjectToken>"})
<ProjectToken>
es el valor de la señal de proyecto.Si se le indica en un mensaje que no existe ninguna señal de proyecto, pulse el enlace del mensaje que se va a redireccionar a la página Control de acceso del proyecto donde puede crear una señal de proyecto. Debe ser elegible para crear una señal de proyecto.
Para crear una señal de proyecto:
- En la pestaña Gestionar, seleccione la página Control de acceso y pulse Nueva señal de acceso en Señales de acceso.
- Especifique un nombre, seleccione el rol Editor para el proyecto y cree una señal.
- Vuelva al cuaderno, pulse el icono Más de la barra de herramientas del cuaderno y, a continuación, pulse Insertar señal de proyecto.
Importe
assetframe-lib
e inicialícelo con la instancia deibm-watson-studio-lib
creada.from assetframe_lib import AssetFrame AssetFrame._wslib = wslib
Las funciones y métodos de assetframe-lib
La biblioteca assetframe-lib expone un conjunto de funciones y métodos que se agrupan de la siguiente manera:
Creación de un marco de activo
Un marco de activo se utiliza para definir metadatos de grupo de características en un activo de datos existente o en un DataFramede pandas. Puede tener exactamente un grupo de funciones para cada activo. Si crea un asset frame en un pandas DataFrame, puede almacenar el pandas DataFrame junto con los metadatos del grupo de características como un asset de datos en su proyecto.
Puede utilizar una de las funciones siguientes para crear el marco de activo:
AssetFrame.from_data_asset(asset_name, create_default_features=False)
Esta función crea un nuevo marco de activo que envuelve un activo de datos existente en el proyecto. Si ya hay un grupo de funciones para este activo, por ejemplo, creado en la interfaz de usuario, se lee de los metadatos del activo.
Si el activo ya tiene definidas descripciones de columnas o etiquetas de columnas, por ejemplo en IBM Knowledge Catalog, esta información estará disponible automáticamente para las características creadas.
Parámetros:
asset_name
: (Necesario) El nombre de un activo de datos en el proyecto.create_default_features
: (Opcional) Crea características para todas las columnas del activo de datos.
AssetFrame.from_pandas(name, dataframe, create_default_features=False)
Esta función crea un nuevo marco de activo que envuelve un pandas DataFrame.
Parámetros:
name
: (Necesario) Nombre del marco de activo. Este nombre se utilizará como nombre del activo de datos si almacena el grupo de características en el proyecto en un paso posterior.dataframe
: (Necesario) Un pandas DataFrame que desea almacenar junto con la información de grupo de características.create_default_features
: (Opcional) Cree características para todas las columnas del archivo de datos.Ejemplo de creación de un asset frame a partir de 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")
Creación, recuperación y eliminación de características
Una función define metadatos que pueden ser utilizados por las tareas posteriores de watsonx.ai Runtime. Puede crear una característica por columna en el conjunto de datos.
Puede utilizar una de las funciones siguientes para crear, recuperar o eliminar columnas del marco de activo:
add_feature(column_name, role='Input')
Esta función añade una nueva función al marco de activo con el rol dado.
Parámetros:
column_name
: (Necesario) El nombre de la columna para la que crear una característica.role
: (Opcional) El rol de la característica. El valor predeterminado es Input.Los roles válidos son:
- Entrada: La entrada para un modelo de aprendizaje automático
- Destino: el destino de un modelo de predicción
- Identificador: el identificador de una fila del conjunto de datos.
- Entrada: La entrada para un modelo de aprendizaje automático
create_default_features()
Esta función crea características para todas las columnas del conjunto de datos. Los roles de las características se utilizarán de forma predeterminada en Entrada.
get_features()
Esta función recupera todas las características del marco de activo.
get_feature(column_name)
Esta función recupera la característica para el nombre de columna especificado.
Parámetros:
column_name
: (Necesario) El nombre de serie de la columna para la que crear la característica.
get_features_by_role(role)
Esta función recupera todas las características del archivo de datos con el rol determinado.
Parámetros:
role
: (Necesario) El rol que deben tener las características. Puede ser Entrada, Destino o Identificador.
remove_feature(feature_or_column_name)
Esta función elimina la función del marco de activo.
Parámetros:
feature_or_column_name
: (Necesario) Una característica o el nombre de la columna para la que se va a eliminar la característica.
Ejemplo que muestra la creación de características para todas las columnas del conjunto de datos y la recuperación de una de esas columnas para especificaciones adicionales:
# 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')
Especificación de atributos de característica
Las funciones especifican metadatos adicionales sobre columnas que pueden utilizarse en tareas posteriores de watsonx.ai Runtime.
Puede utilizar la siguiente función para recuperar la columna para la que está definida la característica:
get_column_name()
Esta función recupera el nombre de columna para el que está definida la característica.
Rol
La función especifica el uso previsto de la función en una tarea en tiempo de ejecución de watsonx.ai.
Los roles válidos son:
Input
: La característica puede utilizarse como entrada de un modelo watsonx.ai Runtime.Identifier
: la característica identifica de forma exclusiva una fila en el conjunto de datos.Target
: la característica se puede utilizar como destino en un algoritmo de predicción.
En este momento, una característica debe tener exactamente un rol.
Puede utilizar los métodos siguientes para trabajar con el rol:
set_roles(roles)
Este método establece los roles de la característica.
Parámetros:
roles
: (Necesario) Los roles que se van a utilizar. Ya sea como una sola serie o una matriz de series.
get_roles()
Este método devuelve todos los roles de la característica.
Ejemplo que muestra cómo obtener una característica y establecer un rol:
# 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')
Descripción
Una descripción opcional de la característica. 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.
Puede utilizar los métodos siguientes para trabajar con la descripción.
set_description(description)
Este método establece la descripción de la característica.
Parámetros:
description
: (Necesario) Una serie oNone
para eliminar la descripción.
get_description()
Este método devuelve la descripción de la característica.
Información de equidad para resultados favorables y desfavorables
Puede especificar etiquetas favorables y desfavorables para una característica con un rol Target
.
Puede utilizar los métodos siguientes para establecer y recuperar etiquetas favorables o desfavorables.
Resultados favorables
Puede utilizar los métodos siguientes para establecer y obtener etiquetas favorables:
set_favorable_labels(labels)
Este método establece etiquetas favorables para la característica.
Parámetros:
labels
: (Necesario) Una serie o lista de series con etiquetas favorables.
get_favorable_labels()
Este método devuelve las etiquetas favorables de la característica.
Resultados desfavorables
Puede utilizar los métodos siguientes para establecer y obtener etiquetas desfavorables:
set_unfavorable_labels(labels)
Este método establece etiquetas desfavorables para la característica.
Parámetros:
labels
: (Necesario) Una serie o lista de series con etiquetas desfavorables.
get_unfavorable_labels()
Este método obtiene las etiquetas desfavorables de la característica.
Ejemplo que muestra el establecimiento de etiquetas favorables y desfavorables:
# 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")
Información de equidad para grupos supervisados y de referencia
Algunas columnas de los datos pueden ser propensas a un sesgo injusto. Puede especificar grupos supervisados y de referencia para su uso posterior en tareas de watsonx.ai Runtime. Se pueden especificar para características con el rol Input
.
Puede especificar valores únicos o rangos de valores numéricos como una serie con corchetes y un valor inicial y final, por ejemplo [0,15]
.
Puede utilizar los métodos siguientes para establecer y recuperar grupos supervisados y de referencia:
set_monitored_groups(groups)
Este método establece grupos supervisados para la característica.
Parámetros:
groups
: (Necesario) Una serie o lista de series con grupos supervisados.
get_monitored_groups()
Este método obtiene los grupos supervisados de la característica.
set_reference_groups(groups)
Este método establece grupos de referencia para la característica.
Parámetros:
groups
: (Necesario) Una serie o lista de series con grupos de referencia.
get_reference_groups()
Este método obtiene los grupos de referencia de la característica.
Ejemplo que muestra el establecimiento de grupos supervisados y de referencia:
# 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]")
Descripciones de valores
Puede utilizar descripciones de valores para especificar descripciones para valores de columna en los datos.
Puede utilizar los métodos siguientes para establecer y recuperar descripciones:
set_value_descriptions(value_descriptions)
Este método establece descripciones de valores para la característica.
Parámetros:
value_descriptions
: (Necesario) Un diccionario Pyton o lista de diccionarios con el formato siguiente:{'value': '<value>', 'description': '<description>'}
get_value_descriptions()
Este método devuelve todas las descripciones de valor de la característica.
get_value_description(value)
Este método devuelve la descripción de valor para el valor especificado.
Parámetros:
value
: (Necesario) El valor para el que recuperar la descripción de valor.
add_value_description(value, description)
Este método añade una descripción de valor con el valor y la descripción proporcionados a la lista de descripciones de valor para la característica.
Parámetros:
value
: (Necesario) El valor de serie de la descripción del valor.description
: (Necesario) La descripción de serie de la descripción de valor.
remove_value_description(value)
Este método elimina la descripción de valor con el valor dado de la lista de descripciones de valor de la característica.
Parámetros:
value
: (Necesario) Un valor de la descripción de valor que se va a eliminar.
Ejemplo que muestra cómo establecer descripciones 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)
Receta
Puede utilizar la receta para describir cómo se ha creado una característica, por ejemplo con una fórmula o un fragmento de código. El valor predeterminado es None
.
Puede utilizar los métodos siguientes para trabajar con la receta.
set_recipe(recipe)
Este método establece la receta de la característica.
Parámetros:
recipe
: (Necesario) Una serie o Ninguno para eliminar la receta.
get_recipe()
Este método devuelve la receta de la característica.
Vista previa de datos
Puede obtener una vista previa de los datos del activo de datos o de los pandas DataFrame con información adicional sobre las características como, por ejemplo, la información de equidad.
Los datos se muestran como un pandas DataFrame con información de cabecera opcional sobre roles de características, descripciones o recetas. La información de equidad se muestra con colores para etiquetas favorables o desfavorables, grupos supervisados y de referencia.
En este momento, puede recuperar hasta 100 filas de datos de ejemplo para un activo de datos.
Utilice la función siguiente para obtener una vista previa de los datos:
head(num_rows=5, display_options=['role'])
Esta función devuelve las primeras
num_rows
filas del conjunto de datos en un pandas DataFrame.Parámetros:
num_rows
: (Opcional) El número de filas que se van a recuperar.display_options
: (Opcional) La cabecera de columna puede mostrar información adicional para una columna del conjunto de datos.Utilice estas opciones para visualizar atributos de característica:
role
: muestra el rol de una característica para esta columna.description
: muestra la descripción de una característica para esta columna.recipe
: muestra la receta de una característica para esta columna.
Obtención de información de equidad
Puede recuperar la información de equidad de todas las características del marco de activos como un diccionario Python . Esto incluye todas las características que contienen grupos supervisados o de referencia (o ambos) como atributos protegidos y la característica de destino con etiquetas favorables o desfavorables.
Si el tipo de datos de una columna con información de equidad es numérico, los valores de etiquetas y grupos se transforman en valores numéricos si es posible.
La información sobre equidad puede utilizarse directamente en AutoAI o AI Fairness 360.
Puede utilizar la función siguiente para recuperar información de equidad del marco de activo:
get_fairness_info(target=None)
Esta función devuelve un diccionario Python con etiquetas favorables y desfavorables de la columna de destino y atributos protegidos con grupos supervisados y de referencia.
Parámetros:
target: (Opcional) La característica de destino. Si sólo hay una característica con el rol
Target
, se utilizará automáticamente.Ejemplo que muestra cómo recuperar información de equidad:
af.get_fairness_info()
Salida que muestra información de equidad:
{ '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]] }] }
Guardando información de grupo de características
Después de haber especificado o actualizado completamente las características, puede guardar toda la definición de grupo de características como metadatos para el activo de datos.
Si ha creado el asset frame a partir de un pandas DataFrame, se creará un nuevo asset de datos en el almacenamiento del proyecto con el nombre del asset frame.
Puede utilizar el método siguiente para almacenar la información del grupo de características:
to_data_asset(overwrite_data=False)
Este método guarda la información del grupo de características en los metadatos de activos. Crea un nuevo activo de datos, si el marco de activo se ha creado a partir de un pandas DataFrame.
Parámetros:
overwrite_data
: (Opcional) También sobrescribe el contenido del activo con los datos del marco del activo. El valor predeterminado esFalse
.
Más información
Consulte el proyecto de ejemplo Creación y utilización de datos de almacén de características en el concentrador de recursos.
Tema principal: Carga y acceso a los datos en un cuaderno