Detección de anomalías basada en PCA

Importante

El soporte técnico de Machine Learning Studio (clásico) finalizará el 31 de agosto de 2024. Se recomienda realizar la transición a Azure Machine Learning antes de esa fecha.

A partir del 1 de diciembre de 2021 no se podrán crear recursos de Machine Learning Studio (clásico). Hasta el 31 de agosto de 2024, puede seguir usando los recursos de Machine Learning Studio (clásico) existentes.

La documentación de ML Studio (clásico) se está retirando y es posible que no se actualice en el futuro.

Crea un modelo de detección de anomalías con el análisis de componentes principales

Categoría: Detección de anomalías

Nota:

Solo se aplica a: Machine Learning Studio (clásico)

Hay módulos para arrastrar y colocar similares en el diseñador de Azure Machine Learning.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo Detección de anomalías basada en PCA en Machine Learning Studio (clásico) para crear un modelo de detección de anomalías basado en el análisis de componentes principales (PCA).

Este módulo le ayuda a crear un modelo en escenarios en los que es fácil obtener datos de entrenamiento de una clase, como transacciones válidas, pero difícil obtener muestras suficientes de las anomalías de destino.

Por ejemplo, para detectar transacciones fraudulentas, a menudo no tiene suficientes ejemplos de fraude para entrenar, pero tiene muchos ejemplos de transacciones buenas. El módulo Detección de anomalías basada en PCA resuelve el problema mediante el análisis de las características disponibles para determinar qué constituye una clase "normal" y la aplicación de métricas de distancia para identificar los casos que representan anomalías. Esto le permite entrenar un modelo con datos desequilibrados existentes.

Más información acerca del análisis de componentes principales

El análisis de componentes principales, que con frecuencia se abrevia como PCA, es una técnica establecida en el aprendizaje automático. PCA se usa con más frecuencia en análisis de datos exploratorios porque revela la estructura interna de los datos y explica la variación en los datos.

El PCA analiza datos que contienen varias variables. Busca correlaciones entre las variables y determina la combinación de valores que mejor capta las diferencias en los resultados. Estos valores de características combinados se usan para crear un espacio de características más compacto denominado componentes principales.

En el caso de la detección de anomalías, se analiza cada entrada nueva y el algoritmo de detección de anomalías calcula su proyección en los vectores, junto con un error de reconstrucción normalizado. Este error normalizado se usa como puntuación de anomalías. Cuanto mayor sea el error, más errónea es la instancia.

Para obtener información adicional sobre cómo funciona PCA y sobre la implementación para la detección de anomalías, consulte estos artículos:

Configuración de la detección de anomalías de PCA

  1. Agregue el módulo Detección de anomalías basada en PCA al experimento en Studio (clásico). Puede encontrar este módulo en Machine Learning, Inicializar modelo, en la categoría Detección de anomalías.

  2. En el panel Propiedades del módulo Detección de anomalías basada en PCA, haga clic en la opción Modo de entrenamiento e indique si desea entrenar el modelo con un conjunto específico de parámetros o usar un barrido de parámetros para buscar los mejores parámetros.

    • Single Parameter (Parámetro único): seleccione esta opción si sabe cómo quiere configurar el modelo y proporcione un conjunto específico de valores como argumentos.

    • Intervalo de parámetros: seleccione esta opción si no está seguro de los mejores parámetros y desea usar un barrido de parámetros mediante el módulo Optimizar hiperparámetros del modelo. El instructor recorre en iteración una variedad de configuraciones que especifique y determina la combinación de configuración que genera los resultados óptimos.

  3. Número de componentes que se van a usar en PCA, Intervalo para el número de componentes de PCA: especifique el número de características de salida o componentes que desea generar.

    La decisión de cuántos componentes incluir es una parte importante del diseño de experimentos mediante PCA. La norma general es que no debe incluir el mismo número de componentes de PCA que variables. En su lugar, debe empezar con un número menor de componentes y aumentarlos hasta que se cumplan algunos criterios.

    Si no está seguro de cuál podría ser el valor óptimo, se recomienda entrenar el modelo de detección de anomalías mediante la opción Intervalo de parámetros.

    Los mejores resultados se obtienen cuando el número de componentes de salida es menor que el número de columnas de características disponibles en el conjunto de datos.

  4. Especifique la cantidad de sobremuestreo que se realizará durante el entrenamiento de PCA aleatorio. En problemas de detección de anomalías, los datos desequilibrados dificultan la aplicación de técnicas estándar de PCA. Al especificar una cantidad de sobremuestreo, puede aumentar el número de instancias de destino.

    Si especifica 1, no se realiza sobremuestreo. Si especifica un valor superior a 1, se generan ejemplos adicionales para el entrenamiento del modelo.

    Hay dos opciones, en función de si usa un barrido de parámetros o no:

    • Parámetro de sobremuestreo para PCA aleatorio: escriba un número entero único que represente la proporción de sobremuestreo de la clase minoritaria sobre la clase normal. (Disponible cuando se usa el método de entrenamiento de parámetro único).
    • Intervalo para el parámetro de sobremuestreo usado en PCA aleatorio: escriba una serie de números para probar o use el Generador de intervalos para seleccionar valores mediante un control deslizante. (Disponible solo cuando se usa el método de entrenamiento de intervalo de parámetros).

    Nota:

    No se puede ver el conjunto de datos sobremuestreado. Para más información sobre cómo se usa el sobremuestreo con PCA, consulte Notas técnicas.

  5. Habilitar normalización media de características de entrada: seleccione esta opción para normalizar todas las características de entrada a una media de cero. Por lo general, la normalización o el escalado a cero son recomendables para el PCA, ya que el objetivo del PCA es maximizar la varianza entre las variables.

    Esta opción está activada de forma predeterminada. Anule la selección de esta opción si los valores ya se han normalizado mediante otro método o escala.

  6. Conectar un conjunto de datos de entrenamiento etiquetado y uno de los módulos de entrenamiento:

    Nota:

    Si pasa un intervalo de parámetros a Train Anomaly Detection Model (Entrenar modelo de detección de anomalías), solo usa el primer valor de la lista de intervalos de parámetros.

    Si pasa un único conjunto de valores de parámetro al módulo Optimizar hiperparámetros del modelo, cuando espera un intervalo de valores para cada parámetro, omite los valores y usa los valores predeterminados para el aprendiz.

    Si selecciona la opción Parameter Range (Intervalo de parámetros) y escribe un valor único para cualquier parámetro, ese valor único se usa a lo largo del barrido, incluso si otros parámetros cambian en un intervalo de valores.

  7. Ejecute el experimento o seleccione el módulo y haga clic en Ejecutar seleccionado.

Results

Una vez completado el entrenamiento, puede guardar el modelo entrenado o conectarlo al módulo Puntuar modelo para predecir las puntuaciones de anomalías.

Para evaluar los resultados de un modelo de detección de anomalías se requieren algunos pasos adicionales:

  1. Asegúrese de que una columna de puntuación está disponible en ambos conjuntos de datos.

    Si intenta evaluar un modelo de detección de anomalías y recibe el error "No hay ninguna columna de puntuación en el conjunto de datos puntuado que comparar", significa que está usando un conjunto de datos de evaluación típico que contiene una columna de etiqueta pero ninguna puntuación de probabilidad. Debe elegir un conjunto de datos que coincida con la salida del esquema para los modelos de detección de anomalías, que incluye una columna Etiquetas puntuadas y Probabilidades puntuadas.

  2. Asegúrese de que las columnas de etiqueta están marcadas

    A veces, los metadatos asociados a la columna de etiqueta se quitan en el gráfico del experimento. Si esto sucede, cuando se usa el módulo Evaluar modelo para comparar los resultados de dos modelos de detección de anomalías, podría recibir el error "No hay ninguna columna de etiqueta en el conjunto de datos puntuado" o "No hay ninguna columna de etiqueta en el conjunto de datos puntuado que comparar".

    Puede evitar este error agregando el módulo Editar metadatos antes del módulo Evaluar modelo. Use el selector de columnas para elegir la columna de clase y, en la lista desplegable Campos , seleccione Etiqueta.

  3. Normalización de puntuaciones de diferentes tipos de modelo

    Las predicciones del modelo de detección de anomalías de PCA siempre están en el intervalo [0,1]. Por el contrario, los resultados del módulo SVM de una clase son puntuaciones sin enlazar que posiblemente estén sin enlazar.

    Por lo tanto, si va a comparar modelos basados en algoritmos diferentes, siempre debe normalizar las puntuaciones. Vea el ejemplo de la Azure AI Gallery para obtener un ejemplo de normalización entre diferentes modelos de detección de anomalías.

Ejemplos

Para obtener ejemplos de cómo se usa PCA en la detección de anomalías, consulte el Azure AI Gallery:

  • Detección de anomalías: riesgo de crédito: muestra cómo encontrar valores atípicos en los datos. En este ejemplo se usa un barrido de parámetros para buscar el modelo óptimo. A continuación, aplica ese modelo a los nuevos datos para identificar las transacciones de riesgo que podrían representar fraudes, comparando dos modelos de detección de anomalías diferentes.

Notas técnicas

Este algoritmo usa PCA para aproximar el subespacio que contiene la clase normal. El subespacio está distribuido por vectores propios asociados a los valores propios superiores de la matriz de covarianza de datos. Para cada entrada nueva, el detector de anomalías calcula su proyección de los vectores propios en primer lugar y, a continuación, calcula el error de reconstrucción normalizado. Este error es la puntuación de anomalías. Cuanto mayor sea el error, más errónea es la instancia. Para obtener más información sobre cómo se calcula el espacio normal, consulte Wikipedia: Análisis de componentes principales.

Parámetros del módulo

Nombre Tipo Intervalo Opcional Descripción Valor predeterminado
Modo de entrenamiento CreateLearnerMode List:Single Parameter|Parameter Range Obligatorio Parámetro único Especifique las opciones de aprendiz.

Use la opción SingleParameter para especificar todos los valores manualmente.

Use la opción ParameterRange para realizar un barrido de los parámetros ajustables.
Número de componentes para usar en PCA Entero mode:Single Parameter 2 Especifique el número de componentes que se utilizarán en PCA.
Parámetro de sobremuestreo para PCA aleatorio Entero mode:Single Parameter 2 Especifique el parámetro de precisión para el entrenamiento de PCA aleatorio.
Habilitar normalización media de características de entrada Tipo de lógica List:True|False Obligatorio False Especifique si los datos de entrada se normalizan para tener media cero.
Intervalo de número de componentes PCA ParameterRangeSettings [1;100] mode:Parameter Range 2; 4; 6; 8; 10 Especifique el intervalo para el número de componentes que se utilizará en el PCA.
Intervalo para el parámetro de sobremuestreo usado en el PCA aleatorio ParameterRangeSettings [1;100] mode:Parameter Range 2; 4; 6; 8; 10 Especifique el intervalo para el parámetro de precisión utilizado en la formación de PCA aleatorio.

Salidas

Nombre Tipo Descripción
Modelo no entrenado Interfaz ILearner Un modelo de detección de anomalías basado en PCA no entrenado

Excepciones

Excepción Descripción
Error 0017 Se produce una excepción si una o varias columnas especificadas tienen un tipo no compatible con el módulo actual.
Error 0062 Se produce una excepción cuando se intenta comparar dos modelos con tipos diferentes de aprendiz.
Error 0047 Se produce una excepción si en algunos de los conjuntos de datos que se pasan al módulo el número de columnas de características es demasiado pequeño.

Para obtener una lista de errores específicos de los módulos de Studio (clásico), consulte Machine Learning códigos de error.

Para obtener una lista de excepciones de API, consulte Machine Learning códigos de error de la API REST.

Consulte también

Máquina de vectores de soporte de una clase