DBSCAN: un algoritmo para detectar anomalías

  • Autor de la entrada:
En este momento estás viendo DBSCAN: un algoritmo para detectar anomalías
Imagen de vvaniasantoss para Pixabay (en Canva)

Tiempo estimado de lectura: 9 minutos.

Como “casi todo” en estos días, una de las maneras de predecir un ataque de ciberseguridad es a través de un modelo de analítica avanzada.

En este caso, el problema por resolver es la detección de anomalías, que se trata como un modelo predictivo de valores extraños dentro del conjunto de datos analizados.

Son anomalías: las transacciones con la misma tarjeta bancaria en dos ciudades muy lejanas en un corto periodo de tiempo, el acceso a un sistema desde una dirección de Internet atípica, o un pico de llamadas en un momento no habitual dentro de un centro de atención al cliente.

En general, las soluciones se orientan a detectar fraudes, ataques de seguridad, problemas en el tratamiento de datos, en medicina o para realizar mantenimiento preventivo. Por ello, son muy utilizadas en entornos corporativos.

El aprendizaje de estos problemas puede ser supervisado, no supervisado o híbrido, aunque, suele ser de los dos últimos tipos, porque no solemos saber lo que estamos buscando.

Hoy te cuento los tipos de anomalías que te puedes encontrar y el método DBSCAM para detectarlas.

Tipos de anomalías

Tipos de anomalías

Las anomalías pueden ser de dos tipos (realmente de tres):

  • Globales, algo extraño dentro del conjunto de valores total.
  • Locales, porque aunque no difieren del grupo completo, tienen valores sorprendentes dentro de su contexto (contextuales) o grupo específico (colectivas).

Por ejemplo, si nos fijamos en el consumo de luz:

  • Es una anomalía global un día que no hubiera nada de consumo eléctrico.
  • Una contextual es que haya un pico de consumo a las 3 de la mañana.
  • Consideramos una colectiva el que durante las 12-13 h de un día, nadie consuma energía.

Técnicas de detección de anomalías: DBSCAN

Con respecto a las técnicas utilizadas, están las más complejas como una red neuronal, aunque, lo lógico, es empezar con otros métodos más controlados como LOF (Local Outlier Factor o Factor anómalo local) o DBSCAN.

Ambos sistemas se basan en analizar densidades.

Los sucesos extraños están en zonas de baja densidad.

Por un lado, la técnica LoF solo se fija en bajas densidades locales con respecto a los vecinos.

Agrupación realizada por DBSCAN

Por el otro lado, DBSCAN, realiza agrupaciones clustering y:

  • Permite procesar un mayor número de variables.
  • Facilita identificar agrupaciones polimórficas no lineales.
  • Identifica como anomalías globales aquellas que no pertenecen a ningún grupo.

La forma de realizar las agrupaciones es mediante un proceso iterativo de pasos que vemos a continuación.

Primer paso

Se definen dos parámetros:

  1. El radio de una circunferencia.
  2. El número de puntos cercano mínimo, dentro de la circunferencia.

Segundo paso

Vamos moviendo la circunferencia por cada punto (centro de la circunferencia) y contamos los puntos cercanos, que son aquellos dentro de la curva:

  • El dato se llama «central» si los puntos cercanos son, como mínimo, el número de puntos definido en el parámetro del primer paso.
  • El dato se llama «no central» en caso contrario.

Tercer paso

Se elige un punto central y se asigna a una primera agrupación (cluster) de forma aleatoria.

Todos los puntos cercanos, es decir, dentro de la circunferencia, se asignan al mismo grupo.

Vamos extendemos la circunferencia hacia los puntos centrales cercanos y añadiendo nuevos puntos centrales al grupo. Los puntos «no centrales» no se incorporan por el momento.

Cuando ya hemos acabado con todos los puntos centrales, se han asignado a la primera agrupación y no se puede extender más, analizamos los puntos «no centrales».

Si están cercanos a un punto central del primer grupo, es decir, dentro de la circunferencia, se incorporan a la agrupación pero no se utilizan para seguir extendiendo. De esta forma, limitamos la forma del cluster.

Realizamos esta acción hasta acabar con todos los puntos «no centrales» cercanos a puntos «centrales» del primer cluster.

Repetimos

Una vez finalizamos con el primer grupo, pasamos a otro punto «central» no incluido en ningún cluster y se asigna a una siguiente agrupación.

Con esto, repetimos el mismo proceso hasta terminar con todo el conjunto de datos:

  • Primero, asignando grupos centrales al grupo.
  • Después, acotando el grupo con los puntos no centrales cercanos.

Detectamos anomalías

Son anomalías aquellos puntos que no se han incluido en ninguna agrupación.

Referencias

Si quieres revisar el proceso de una forma visual, te recomiendo este vídeo de Statquest con Josh Starmer.

Espero que te haya gustado y si quieres estar al día, suscríbete a mi newsletter.