Detección de anomalías
# Detección de anomalías

En el análisis de datos, la detección de anomalías [también denominada detección de valores atípicos (en inglés: outlier detection)] y, en ocasiones, detección de rarezas suele entenderse como la identificación de elementos, sucesos u observaciones poco frecuentes que se desvían significativamente de la mayoría de los datos y no se ajustan a una noción bien definida de comportamiento normal. Tales ejemplos pueden despertar sospechas de haber sido generados por un mecanismo diferente, o parecer incoherentes con el resto de ese conjunto de datos.
La detección de anomalías tiene aplicación en muchos ámbitos, como la ciberseguridad, la medicina, la visión artificial, la estadística, la neurociencia, la aplicación de la ley y el fraude financiero, por citar sólo algunos. Inicialmente, las anomalías se buscaban para rechazarlas u omitirlas claramente de los datos con el fin de facilitar el análisis estadístico, por ejemplo para calcular la media o la desviación típica. También se eliminaban para mejorar las predicciones de modelos como la regresión lineal y, más recientemente, su eliminación ayuda al rendimiento de los algoritmos de aprendizaje automático. Sin embargo, en muchas aplicaciones, las propias anomalías son de interés y constituyen las observaciones más deseables de todo el conjunto de datos, que es necesario identificar y separar del tráfico o de los valores atípicos irrelevantes.
Existen tres grandes categorías de técnicas de detección de anomalías. Las técnicas supervisadas de detección de anomalías requieren de un conjunto de datos etiquetados como "normales" y "anormales" e implican el entrenamiento de un clasificador. Sin embargo, este enfoque se utiliza raramente en la detección de anomalías debido a la indisponibilidad general de datos etiquetados y a la naturaleza desequilibrada inherente de las clases. Las técnicas de detección de anomalías semisupervisadas suponen que una parte de los datos está etiquetada. Puede tratarse de cualquier combinación de datos normales o anómalos, pero lo más frecuente es que las técnicas construyan un modelo que represente un comportamiento normal a partir de un conjunto dado de datos normales de entrenamiento y, a partir de ello, comprueben la probabilidad de que el modelo genere una instancia de prueba. Las técnicas no supervisadas de detección de anomalías suponen que los datos no están etiquetados y son, con mucho, las más utilizadas debido a su aplicación más amplia y pertinente.

# Detección de anomalías
## Definición

En las comunidades de estadística e informática se han hecho muchos intentos de definir una anomalía. Entre los más frecuentes se encuentran:
* Un valor atípico es una observación que se desvía tanto de las demás observaciones como para despertar sospechas de que se ha generado por un mecanismo diferente.
* Las anomalías son casos o conjuntos de datos que aparecen muy raramente en el conjunto de datos y cuyas características difieren significativamente de la mayoría de los datos.
* Un valor atípico es una observación (o subconjunto de observaciones) que parece incoherente con el resto de ese conjunto de datos.
* Una anomalía es un punto o conjunto de puntos que está relativamente alejado de otros puntos en un espacio multidimensional de características.
* Las anomalías son patrones en los datos que no se ajustan a una noción bien definida de comportamiento normal.
* Sean T observaciones de una distribución gaussiana univariante y O un punto de T. Entonces la puntuación z de O es mayor que un umbral preseleccionado si y sólo si O es una anomalía.

# Detección de anomalías
## Aplicaciones

La detección de anomalías es aplicable en un gran número y variedad de ámbitos, y constituye una importante subárea del aprendizaje automático no supervisado. Como tal, tiene aplicaciones en la detección de intrusos en ciberseguridad, la detección de fraudes, la detección de fallos, la supervisión de la salud de sistemas, la detección de eventos en redes de sensores, la detección de perturbaciones en ecosistemas, la detección de defectos en imágenes mediante visión artificial, el diagnóstico médico y la aplicación de la ley.
La detección de anomalías fue propuesta para los sistemas de detección de intrusos (IDS) por Dorothy Denning en 1986. La detección de anomalías para IDS se realiza normalmente con umbrales y estadísticas, pero también puede hacerse con soft computing y aprendizaje inductivo. Los tipos de estadísticas propuestos en 1999 incluían perfiles de usuarios, estaciones de trabajo, redes, hosts remotos, grupos de usuarios y programas basados en frecuencias, medias, varianzas, covarianzas y desviaciones estándar. La contraparte de la detección de anomalías en la detección de intrusos es la detección de usos indebidos.
A menudo se utiliza en el preprocesamiento para eliminar los datos anómalos del conjunto de datos. Esto se hace por varias razones. Las estadísticas de los datos, como la media y la desviación estándar, son más precisas tras la eliminación de las anomalías, y también se puede mejorar la visualización de los datos. En el aprendizaje supervisado, la eliminación de los datos anómalos del conjunto de datos suele traducirse en un aumento estadísticamente significativo de la precisión. Las anomalías son también a menudo las observaciones más importantes de los datos que hay que encontrar, como en la detección de intrusos o la detección de anomalías en imágenes médicas.

# Detección de anomalías
## Técnicas populares

En la literatura se han propuesto muchas técnicas de detección de anomalías. Algunas de las técnicas más populares son
* Estadísticas (unidad tipificada, prueba de rango de Tukey y prueba de Grubbs)
* Técnicas basadas en la densidad (k vecinos más próximos, factor atípico local, bosques de aislamiento, y muchas más variaciones de este concepto)
* Detección de valores atípicos basada en el subespacio, la correlación y el tensor para datos de alta dimensión
* Máquinas de vectores de soporte de una clase
* Redes neuronales replicantes, autocodificadores, autocodificadores variacionales, redes neuronales de memoria a corto plazo.
* Redes bayesianas
* Modelos ocultos de Markov (HMM)
* Determinante de covarianza mínima
* Agrupación: Detección de valores atípicos basada en el análisis de grupos
* Desviaciones de las reglas de asociación y conjuntos de elementos frecuentes
* Detección de valores atípicos basada en lógica difusa
* Técnicas de ensamblaje, utilizando la agrupación de características (en inglés: feature bagging), la normalización de puntuaciones y diferentes fuentes de diversidad.
El rendimiento de los métodos depende del conjunto de datos y los parámetros, y los métodos tienen pocas ventajas sistemáticas sobre otros cuando se comparan entre muchos conjuntos de datos y parámetros.

# Detección de anomalías
## Detección de anomalías explicable

Muchos de los métodos analizados anteriormente sólo ofrecen una predicción de la puntuación de la anomalía, que a menudo puede explicarse a los usuarios como que el punto se encuentra en una región de baja densidad de datos (o de densidad relativamente baja en comparación con las densidades de los vecinos). En la inteligencia artificial explicable, los usuarios exigen métodos con mayor capacidad de explicación. Algunos métodos permiten explicaciones más detalladas:
* El Grado de Valores Atípicos del Subespacio (en inglés: Subspace Outlier Degree) (SOD) identifica atributos en los que una muestra es normal, y atributos en los que la muestra se desvía de lo esperado.
* Las Probabilidades de Correlación de Valores Atípicos (en inglés: Correlation Outlier Probabilities) (COP) calculan un vector de error sobre cómo un punto de la muestra se desvía de una ubicación esperada, lo que puede interpretarse como una explicación contrafactual: la muestra sería normal si se trasladara a esa ubicación.

# Detección de anomalías
## Software

* ELKI es un conjunto de herramientas de minería de datos Java de código abierto que contiene varios algoritmos de detección de anomalías, así como aceleración de índices para ellos.
* PyOD es una biblioteca Python de código abierto desarrollada específicamente para la detección de anomalías.
* scikit-learn es una biblioteca Python de código abierto que contiene algunos algoritmos para la detección no supervisada de anomalías.
* Wolfram Mathematica proporciona funcionalidad para la detección de anomalías no supervisada a través de múltiples tipos de datos

# Detección de anomalías
## Conjuntos de datos

* Repositorio de datos de referencia de detección de anomalías con conjuntos de datos cuidadosamente seleccionados de la Ludwig-Maximilians-Universität München; Mirror Archivado el 31 de marzo de 2022 en Wayback Machine. en la Universidad de São Paulo.
* ODDS – ODDS: Una gran colección de conjuntos de datos de detección de valores atípicos disponibles públicamente con la verdad sobre el terreno en diferentes dominios.
* Unsupervised Anomaly Detection Benchmark en Harvard Dataverse: Conjuntos de datos para la detección no supervisada de anomalías con la verdad sobre el terreno.
* KMASH Data Repository en Research Data Australia, con más de 12.000 conjuntos de datos de detección de anomalías con la verdad sobre el terreno.