Desviación de datos

Además de comprobar la desviación de la precisión del modelo, el supervisor de desviación puede detectar la desviación de los datos. Este tipo de desviación se define como algo que se desvía de lo estándar, normal o previsto. Watson OpenScale detecta las anomalías para que pueda realizar cambios en el modelo.

Información sobre la detección de la desviación

La desviación es la degradación del rendimiento predictivo a lo largo del tiempo debido a un contexto oculto. A medida que los datos cambian a lo largo del tiempo, la capacidad del modelo para hacer predicciones exactas puede empeorar. Watson OpenScale detecta y resalta la desviación para que se pueda llevar a cabo la acción correctiva.

Cómo funciona

Watson OpenScale analiza todas las transacciones para encontrar las que contribuyen a la desviación. A continuación agrupa los registros en función de la similitud de los patrones de incoherencia de datos que han contribuido de forma significativa a la desviación.

Especificación de la restricción de desviación

El esquema de restricciones describe las estadísticas de los datos de entrenamiento como un conjunto de límites de datos de una única columna y de dos columnas. Estas estadísticas identifican los valores atípicos de los datos de entrada en un modelo de aprendizaje de máquina en tiempo de ejecución. Las restricciones de una única columna tratan cada columna de forma individual, mientras que las restricciones de dos columnas presuponen que puede existir una relación entre dos columnas de los datos de entrenamiento.

Objeto JSON de restricciones

El esquema de restricciones se especifica como un objeto JSON con dos campos de matriz que describen todas las columnas y las restricciones de los datos de entrenamiento. El objeto JSON tiene el formato siguiente:

{
      columns: [],
      constraints: []
}

Estadísticas de las columnas

Cada elemento de las columnas describe las propiedades estadísticas estándar de una columna.

El tipo de datos de la columna se indica mediante la variable dtype. Los valores permitidos de la variable dtype son uno de elementos siguientes:

  • categorical
  • numeric_discrete
  • numeric_continuous

Una columna numérica se describe con sus límites numéricos estándar, tales como mínimo, máximo, media, desviación estándar y sus valores de percentil primero, segundo y tercero.

Atributos comunes de todas las restricciones:

El campo name identifica el tipo concreto de una restricción. El valor de name puede ser uno de los elementos siguientes:

  • categorical_distribution_constraint
  • numeric_range_constraint
  • numeric_distribution_constraint
  • catnum_range_constraint
  • catnum_distribution_constraint
  • catcat_distribution_constraint

El campo id es un campo interno para identificar cada restricción de forma exclusiva. Su valor es un UUID.

El campo kind identifica si la restricción es una restricción de una o dos columnas. Los valores permitidos son un valor single_column, un valor two_column

El campo columns es una matriz de nombres de columna. Si la restricción es para una única columna, la matriz contiene un único elemento cuyo valor es el nombre de la columna. Si la restricción abarca dos columnas, la matriz contiene los nombres de las dos columnas.

Restricciones de una única característica

Las restricciones de una única característica, también se conocen como restricciones de una única columna, no se pueden generar en las siguientes instancias:

  • El contenido de categorical_distribution_constraint tiene un atributo frequency_distribution que tiene los recuentos de frecuencia de cada valor categórico de la categoría especificada. Si una columna numérica se puede ajustar a una distribución y no es discreta o dispersa, Watson OpenScale genera tanto la restricción de rango como la de distribución.
  • El contenido de numeric_range_constraint tiene un atributo ranges que incluye las regiones de alta densidad de la columna numérica. Los rangos numéricos que raramente se generan en los datos de entrenamiento no se incluyen. Si una columna numérica es escasa o discreta, Watson OpenScale genera la restricción de distribución de frecuencia, pero no la distribución y el rango regulares.
  • El contenido de numeric_distribution_constraint tiene un atributo distribution que indica si el valor numérico especificado sigue una distribución uniforme, beta, exponencial o normal. Los valores permitidos de nombre para la distribución son uno de beta, uniform, expon o norm. distribution.parameters tiene todos los parámetros de la distribución correspondiente. Consulte la documentación de scipy.stats.beta, scipy.stats.uniform, scipy.stats.expon, scipy.stats.norm para obtener detalles sobre el parámetro ofeach. Si los datos de columna numéricos no se pueden ajustar a una distribución, en función del valor de p calculado, Watson OpenScale sólo calcula la restricción de rango.

Restricciones de característica doble

Las restricciones de una característica doble, conocidas también como restricciones de dos columnas, no se pueden generar en las siguientes instancias:

  • El contenido de catnum_range_constraint tiene la columna categórica de origen especificada como source_column y la columna numérica de destino especificada como target_column. El atributo ranges contiene el rango de valores numéricos que se pueden generar para un determinado valor de columna categórica. Todas estas categorías se descartan y se generan muy raramente. El rango numérico solo incluye los valores mínimo, máximo y el número de filas en los datos de entrenamiento con el valor categórico correspondiente.
  • El contenido de catnum_distribution_constraint tiene la columna categórica de origen especificada como source_column y la columna numérica de destino especificada como target_column. El atributo distribution contiene la distribución de los valores numéricos para un determinado valor de columna categórica. Consulte numeric_distribution_constraint para obtener más detalles sobre los parámetros de distribución.
  • El contenido de catcat_distribution_constraint tiene la columna categórica de origen especificada como source_column y la columna categórica de destino especificada como target_column. El atributo rare_combinations contiene todos estos pares de valores de columna de origen y destino que rara vez aparecen juntos en los datos de entrenamiento.

Trabajar con conjuntos de datos de gran tamaño

Para que la desviación de datos se calcule de forma correcta, se deben dividir los conjuntos de datos muy grandes que constan de más de mil columnas (1.012). Debe dividir el conjunto de datos en varios conjuntos de datos, cada uno de ellos con un subconjunto de columnas y las restricciones de generación.

Para los conjuntos de dato, que tienen un gran número de columnas, que utilizan una codificación en caliente, se sugiere escribir un derivador sobre el modelo y proporcionar a Watson OpenScale una API REST del punto final de puntuación. De este modo, Watson OpenScale puede aceptar datos no codificados en caliente durante el tiempo de entrenamiento y también al añadir datos de carga útil.

Cómo calcularlo

Watson OpenScale analiza en cada transacción la incoherencia de datos, comparando el contenido de la transacción con los patrones de los datos de entrenamiento. Si una transacción infringe uno o más de los patrones de datos de entrenamiento, la transacción se marca como desviada. A continuación, Watson OpenScale, realiza una estimación de la magnitud de la incoherencia de datos, como la fracción de las transacciones desviadas en relación con el número total de transacciones analizadas. Además, Watson OpenScale analiza todas las transacciones desviadas y, a continuación, agrupa las transacciones que infringen patrones de datos de entrenamiento similares en clústeres diferentes. En cada clúster, Watson OpenScale también realiza una estimación de las características importantes que han jugado un papel importante en la incoherencia de datos y clasifica su impacto en las características como grande, alguno y pequeño.

Próximos pasos

  • Para obtener información sobre cómo configurar la detección de desviación, consulte Configuración del supervisor de detección de desviación.
  • Para mitigar la desviación, una vez que Watson OpenScale la ha detectado, debe crear una nueva versión del modelo que corrija el problema. Un buen lugar por donde empezar es con los puntos de datos resaltados como motivos de la desviación. Introduzca los nuevos datos en el modelo predictivo una vez que haya etiquetado manualmente las transacciones desviadas y utilícelos para reentrenar el modelo.