Máquina de vectores de soporte de una clase

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 máquina de vectores de soporte de una clase para la detección de anomalías

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 Modelo de vectores de compatibilidad de una clase en Machine Learning Studio (clásico) para crear un modelo de detección de anomalías.

Este módulo es especialmente útil en escenarios en los que tiene una gran cantidad de datos "normales" y no muchos casos de anomalías que está intentando detectar. Por ejemplo, si necesita detectar transacciones fraudulentas, es posible que no tenga muchos ejemplos de fraude que podría usar para entrenar un modelo de clasificación típico, pero podría tener muchos ejemplos de transacciones correctas.

Use el módulo Modelo de vectores de soporte de una clase para crear el modelo y, a continuación, entrena el modelo mediante El entrenamiento del modelo de detección de anomalías. El conjunto de datos que se usa para el entrenamiento puede contener todos o principalmente casos normales.

A continuación, puede aplicar métricas diferentes para identificar posibles anomalías. Por ejemplo, podría usar un conjunto de datos grande de transacciones buenas para identificar casos que posiblemente representen transacciones fraudulentas.

Más información sobre SVM de una clase

Las máquinas de vectores de soporte (SVM) son modelos de aprendizaje supervisados que analizan datos y reconocen patrones, y que se puede utilizar para tareas de clasificación y regresión.

Normalmente, al algoritmo SVM se le da un conjunto de ejemplos de entrenamiento etiquetados como pertenecientes a una de las dos clases. Un modelo SVM se basa en dividir los puntos de ejemplo de entrenamiento en categorías independientes por una brecha lo más amplia posible, al tiempo que se penalizan las muestras de entrenamiento que se encuentra en el lado equivocado de la brecha. A continuación, el modelo SVM realiza predicciones mediante la asignación de puntos a un lado de la brecha u otro.

A veces, el sobremuestreo se usa para replicar los ejemplos existentes de modo que pueda crear un modelo de dos clases, pero es imposible predecir todos los nuevos patrones de fraudes o errores del sistema a partir de ejemplos limitados. Además, la recopilación incluso de ejemplos limitados puede resultar costosa.

Por lo tanto, en SVM de una clase, el modelo de vectores de compatibilidad se entrena con datos que tienen solo una clase, que es la clase "normal". Deduce las propiedades de los casos normales y, a partir de estas propiedades, puede predecir qué ejemplos son diferentes de los ejemplos normales. Esto es útil para la detección de anomalías porque la escasez de ejemplos de entrenamiento es lo que define anomalías: es decir, normalmente hay muy pocos ejemplos de intrusión de red, fraude u otro comportamiento anómalo.

Para obtener más información, incluidos vínculos a la investigación básica, consulte la sección Notas técnicas .

Nota:

El módulo Modelo de vector de soporte de una clase crea un modelo de SVM de kernel, lo que significa que no es muy escalable. Si el tiempo de entrenamiento es limitado o tiene demasiados datos, puede usar otros métodos para los detectores de anomalías, como la detección de anomalías basada en PCA.

Configuración de One-Class SVM

  1. Agregue el módulo Modelo de vectores de soporte de una clase al experimento en Studio (clásico). Puede encontrar el módulo en Machine Learning - Inicializar, en la categoría Detección de anomalías.

  2. Haga doble clic en el módulo Modelo de vectores de soporte de una clase para abrir el panel Propiedades.

  3. En Create trainer mode (Crear modo de instructor), seleccione una opción que indique cómo se debe entrenar el modelo:

    • Single Parameter (Parámetro único): Use 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: use esta opción si no está seguro de los mejores parámetros y desea realizar un barrido de parámetros para encontrar la configuración óptima.

  4. η: escriba un valor que represente el límite superior en la fracción de valores atípicos. Este parámetro corresponde a la propiedad nu descrita en este documento. La propiedad nu permite controlar el equilibrio entre los valores atípicos y los casos normales.

  5. ε (epsilon): escriba un valor que se usará como tolerancia de detención. La tolerancia de detención afecta al número de iteraciones usadas al optimizar el modelo y depende del valor del criterio de detención. Cuando se supera el valor, el instructor deja de iterar en una solución.

  6. Conecte un conjunto de datos de entrenamiento 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 los 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.

Results

El módulo devuelve un modelo de detección de anomalías entrenado. Puede guardar el modelo en el área de trabajo o puede conectar el módulo Puntuar modelo y usar el modelo entrenado para detectar posibles anomalías.

Si ha entrenado el modelo mediante un barrido de parámetros, tome nota de la configuración óptima de parámetros que se usará al configurar un modelo para su uso en producción.

Ejemplos

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

  • Detección de anomalías: riesgo de crédito: en este ejemplo se muestra cómo encontrar valores atípicos en los datos mediante un barrido de parámetros para encontrar 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

Las predicciones de la SVM de una clase son puntuaciones sin generar que puedan estar sin enlazar. Como se muestra en el ejemplo de Cortana Intelligence Gallery, asegúrese de normalizar las puntuaciones si está comparando modelos basados en algoritmos diferentes.

Investigación

Esta implementación encapsula la biblioteca para admitir máquinas vectoriales denominadas libsvm. B. Schӧlkopf libsvm et al describe la teoría general en la que se basa y el enfoque hacia las máquinas vectores de soporte de una clase.

Parámetros del módulo

Nombre Tipo Intervalo Opcional Descripción Valor predeterminado
Crear el modo de entrenador Crear el modo de entrenador 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.
nu Float >=double.Epsilon mode:Single Parameter 0,1 Este parámetro (representado por la letra griego nu) determina el equilibrio entre la fracción de valores atípicos y el número de vectores de soporte.
epsilon Float >=double.Epsilon mode:Single Parameter 0,001 Especifica la detención de la tolerancia.
psnu ParameterRangeSettings [0.001;1.0] mode:Parameter Range 0.001; 0.01; 0.1 Especifica el intervalo para el equilibrio entre la fracción de los valores atípicos y el número de vectores de soporte.
psEpsilon ParameterRangeSettings [1e-6;1.0] mode:Parameter Range 0.001; 0.01; 0.1 Especifica el intervalo para detener la tolerancia.

Salidas

Nombre Tipo Descripción
Modelo no entrenado Interfaz ILearner Un modelo de detección de anomalías sin entrenar

Consulte también

Clasificación
Train Anomaly Detection Model (entrenar un modelo de detección de anomalías)