Detección de anomalías con características ficticias (y otras características discretas / categóricas)

18

tl; dr

  • ¿Cuál es la forma recomendada de manejar los discretedatos cuando se realiza la detección de anomalías?
  • ¿Cuál es la forma recomendada de manejar los categoricaldatos cuando se realiza la detección de anomalías?
  • Esta respuesta sugiere usar datos discretos para simplemente filtrar los resultados.
  • ¿Quizás reemplazar el valor de la categoría con la posibilidad de observación del perctage?

Introducción

Esta es la primera vez que publico aquí, así que, por favor, si algo no parece técnicamente correcto, ya sea en el formato o en el uso de definiciones correctas, me interesa saber qué debería haberse usado en su lugar.

Adelante.

Recientemente participé en la clase de Machine Learning de Andrew Ng

Para la detección de anomalías, se nos ha enseñado a determinar cuáles son los parámetros de distribución Normal / Gaussiana para una característica / variable dada, xi dentro de un conjunto de datos, y luego determinar la probabilidad de un conjunto elegido de ejemplos de entrenamiento / valor de observación dado ese particular Distribución gaussiana, y luego tomando el producto de las probabilidades de las características.

Método

Elija las características / variables que creemos que explican la actividad en cuestión: { x 1 , x 2 , ... , x i }xi

{x1,x2,,xi}

Ajuste los parámetros de Gauss para cada característica: σ2=1

μj=1mi=1mxj(i)
σ2=1mi=1m(xj(i)μj)2

Para cada ejemplo de entrenamiento, , calcule: p ( x ) = n j = 1 p ( x j ; μ j , σ 2 j )x

p(x)=j=1n p(xj;μj,σj2)

Luego marcamos como una anomalía ( ), dado: y = { 1y=1

y={1p(x)<ϵ0p(x)ϵ

Esto nos da el método para determinar si un ejemplo requiere una inspección más profunda.

Mis preguntas)

Esto parece estar bien para variables / características continuas, pero no se abordan datos discretos.

[IsMale]0,1p(x)

red1,blue2red1log()

Preguntas: (actualizado: 24/11/2015)

  • p(x)
  • p(x)
  • ¿Existe otro método que tenga en cuenta lo que estoy preguntando aquí y que pueda seguir investigando / aprendiendo?
  • ¿Cuál es la forma recomendada de manejar los discretedatos cuando se realiza la detección de anomalías?
  • ¿Cuál es la forma recomendada de manejar los categoricaldatos cuando se realiza la detección de anomalías?

Editar: 2017-05-03

  • Esta respuesta sugiere usar datos discretos para simplemente filtrar los resultados.
  • ¿Quizás reemplazar el valor de la categoría con la posibilidad de observación del perctage?
Adrian Torrie
fuente
<descargo de responsabilidad> Soy alguien con suficientes antecedentes de estadísticas para ser peligroso. </disclaimer> Así que pongámonos peligrosos ... Mi intuición está de acuerdo con la suya en que el gaussiano no es la forma de manejar datos no continuos. Para datos continuos, un valor en la línea numérica tiene un tipo diferente de relación con todos los demás valores que un número en una línea entera o una variable binaria. Las distribuciones binomiales describen variables binarias. Las distribuciones multinomiales describen variables multinomiales. ¿No son todos estos miembros de familia exponenciales?
EngrStudent - Restablece a Monica el
Otro que puede agregar a cualquier discusión: Tema: ¿valores atípicos categóricos?
Adrian Torrie
pp(x;μ,σ2)=1σ2πe(xμ)22σ2
@uvts_cvs sí, la función de densidad de probabilidad del gaussaian es lo que se usa.
Adrian Torrie el

Respuestas:

4

En general, para las características discretas * y categóricas, este método no es particularmente adecuado para análisis atípicos. Como no hay una magnitud asociada con los predictores categóricos, estamos trabajando con:

  • Frecuencia de la categoría observada en los datos globales.
  • Frecuencia de la categoría que se observa dentro de los subespacios de los datos.

Tenga en cuenta que ninguna de estas cualidades se puede analizar de forma aislada, como lo requiere su método gaussiano. En cambio, necesitamos un método que contextualice las características categóricas y considere la naturaleza correlacional de los datos.

Estas son algunas técnicas para datos de atributos categóricos y mixtos, basados ​​en el análisis de valores atípicos de Aggarwal:

  • SS=Qkλk2QkTQkE=QkλkE
  • Si tiene características puramente categóricas, ajuste un modelo de mezcla a los datos categóricos sin procesar. Los puntos anómalos tienen la probabilidad generativa más baja.
  • Utilice la codificación única para predictores categóricos y, opcionalmente, el análisis de variables latentes ** para variables ordinales con asignaciones continuas no aparentes
    • Estandarice las funciones que no son one-hot (las funciones one-hot ya están estandarizadas implícitamente) y realice el Análisis de componentes principales . Realice la reducción de dimensionalidad utilizando los principales componentes principales (o un enfoque de PCA suave donde los vectores propios se ponderan con valores propios) y ejecute un método de análisis de valores atípicos continuo típico (por ejemplo, un modelo de mezcla o su método gaussiano)
    • Realizar un análisis basado en ángulos. Para cada observación, calcule las similitudes de coseno entre todos los pares de puntos. Las observaciones con la varianza más pequeña de estas similitudes (conocido como el "Factor de valores atípicos basados ​​en el ángulo") son muy probablemente valores atípicos. Puede requerir un análisis final de la distribución empírica de ABOF para determinar qué es anómalo.
    • Si ha etiquetado valores atípicos: ajuste un modelo predictivo a los datos de ingeniería (regresión logística, SVM, etc.).

* Las características discretas podrían manejarse aproximadamente en su método gaussiano. En las condiciones adecuadas, una característica puede aproximarse bien mediante una distribución normal (por ejemplo, variable aleatoria binomial con npq> 3). Si no, manipúlelos como ordinales descritos anteriormente.

** Esto es similar a su idea de "reemplazar el valor de la categoría con el porcentaje de probabilidad de observación"

khol
fuente
K=1
@Akababa Puede, por ejemplo, calcular MLE en parámetros multinomiales utilizando el algoritmo EM. Asumiendo la independencia de los RV multinomiales, este enfoque se generaliza a conjuntos de predictores categóricos arbitrarios. Ejemplo aquí
khol
0

Las matemáticas de la clase Andrew Ng manejan datos "discretos" de la misma manera que manejan datos "no discretos". Todo lo que tenemos que hacer es estimar empíricamente los parámetros de distribución normales, y se puede hacer perfectamente para datos discretos.

Si lo piensa, el aprendizaje automático siempre trata con datos discretos de todos modos: el número de puntos de datos no es infinito y el número de bits manejados por las computadoras no es infinito.

Si se pueden comparar puntos de datos discretos entre sí, entonces no hay una diferencia fundamental para los métodos de aprendizaje automático cuando se trata, por ejemplo, de longitud: 1.15 pies 1.34 pies 3.4 pies

o cuántas ramas hay en el árbol: 1 2 3 5

Puede sumar y promediar coma flotante o números enteros de la misma manera.

Ahora, a datos categóricos. Los puntos de datos categóricos no se pueden comparar (coche vs motocicleta vs barco). Como manejamos esto?

El número de categorías tiene que ser al menos dos para tener sentido, de lo contrario, ¿cuál es el punto en la función constante? En el caso de 2 categorías, podemos representar una característica de categoría como una característica binaria {0, 1}. 0 y 1 se pueden usar para las matemáticas, así que ver arriba.

Si el número de categorías (K) es [3 .. inf], asignamos nuestra característica única a K características binarias mutuamente excluyentes. Por ejemplo, la categoría "motocicleta" se convierte en una combinación de características binarias {IsCar: 0, IsMotorcycle: 1, IsBoat: 0}, el punto de barco se convierte en {IsCar: 0, IsMotorcycle: 0, IsBoat: 1} y así sucesivamente.

Podemos estimar los parámetros de distribución empírica a partir de estas nuevas características. Simplemente tendremos más dimensiones, eso es todo.

Oscar92
fuente
1
Esto explica la codificación ficticia, pero esa no es una respuesta a la pregunta
Pieter