Ayer trabajamos con Isolation Forest, que es un método de detección de anomalías.
Hoy analizamos otro algoritmo que tiene el mismo objetivo. Pero a diferencia de Isolation Forest, no construye árboles.
Se llama LOF o factor de valor atípico local.
La gente suele resumir LOF con una frase: ¿Vive este punto en una región con menor densidad que sus vecinos?
Esta frase es realmente difícil de entender. Luché con eso durante mucho tiempo.
Sin embargo, hay una parte que es inmediatamente fácil de entender:
y veremos que se convierte en el punto clave:
hay una noción de vecinos.
Y tan pronto como hablamos de vecinos,
Naturalmente volvemos a los modelos basados en la distancia.
Explicaremos este algoritmo en 3 pasos.
Para simplificar las cosas, usaremos este conjunto de datos nuevamente:
1, 2, 3, 9
¿Recuerdas que tengo los derechos de autor de este conjunto de datos? Hicimos Isolation Forest con él y haremos LOF con él nuevamente. Y también podemos comparar los dos resultados.
Todos los archivos de Excel están disponibles a través de este enlace de Kofi. Tu apoyo significa mucho para mí. El precio aumentará durante el mes, por lo que los primeros seguidores obtendrán el mejor valor.
Paso 1: k vecinos y k distancia
LOF comienza con algo extremadamente simple:
Mira las distancias entre puntos.
Luego encuentre los k vecinos más cercanos de cada punto.
Tomemos k = 2, sólo para mantener las cosas al mínimo.
Vecinos más cercanos para cada punto
Punto 1 → vecinos: 2 y 3 Punto 2 → vecinos: 1 y 3 Punto 3 → vecinos: 2 y 1 Punto 9 → vecinos: 3 y 2
Ya vemos emerger una estructura clara:
1, 2 y 3 forman un grupo compacto 9 vive solo, lejos de los demás
La distancia k: un radio local
La k-distancia es simplemente la distancia más grande entre los k vecinos más cercanos.
Y este es en realidad el punto clave.
Porque este único número te dice algo muy concreto:
el radio local alrededor del punto.
Si la distancia k es pequeña, el punto está en un área densa.
Si la distancia k es grande, el punto está en un área dispersa.
Con sólo esta medida ya se tiene una primera señal de “aislamiento”.
Aquí usamos la idea de “k vecinos más cercanos”, que por supuesto nos recuerda a k-NN (el clasificador o regresor).
El contexto aquí es diferente, pero el cálculo es exactamente el mismo.
Y si piensas en k-means, no las mezcles:
la “k” en k-means no tiene nada que ver con la “k” aquí.
El cálculo de la distancia k
Para el punto 1, los dos vecinos más cercanos son 2 y 3 (distancias 1 y 2), por lo que k-distancia(1) = 2.
Para el punto 2, los vecinos son 1 y 3 (ambos a distancia 1), por lo que k-distancia(2) = 1.
Para el punto 3, los dos vecinos más cercanos son 1 y 2 (distancias 2 y 1), por lo que k-distancia(3) = 2.
Para el punto 9, los vecinos son 3 y 2 (6 y 7), por lo que k-distancia(9) = 7. Esto es enorme en comparación con todos los demás.
En Excel, podemos hacer una matriz de distancias por pares para obtener la distancia k para cada punto.
Paso 2 – Distancias de accesibilidad
Para este paso, simplemente definiré los cálculos aquí y aplicaré las fórmulas en Excel. Porque, para ser honesto, nunca logré encontrar una manera verdaderamente intuitiva de explicar los resultados.
Entonces, ¿qué es la “distancia de accesibilidad”?
Para un punto p y un vecino o, definimos esta distancia de alcanzabilidad como:
alcance-dist(p, o) = max(k-dist(o), distancia(p, o))
¿Por qué tomar el máximo?
El propósito de la distancia de accesibilidad es estabilizar la comparación de densidad.
Si el vecino o vive en una región muy densa (pequeña distancia k), entonces no queremos permitir una distancia irrealmente pequeña.
En particular, para el punto 2:
Distancia a 1 = 1, pero k-distancia(1) = 2 → alcance-dist(2, 1) = 2 Distancia a 3 = 1, pero k-distancia(3) = 2 → alcance-dist(2, 3) = 2
Ambos vecinos fuerzan la distancia de accesibilidad hacia arriba.
En Excel mantendremos un formato matricial para mostrar las distancias de alcanzabilidad: un punto comparado con todos los demás.
Distancia media de accesibilidad
Para cada punto, ahora podemos calcular el valor promedio, que nos dice: en promedio, ¿qué distancia necesito viajar para llegar a mi vecindario local?
Y ahora, notas algo: el punto 2 tiene una distancia de alcance promedio mayor que el 1 y el 3.
¡Esto no es tan intuitivo para mí!
Paso 3: LRD y puntuación LOF
El paso final es una especie de “normalización” para encontrar una puntuación de anomalía.
Primero, definimos el LRD, Densidad de Accesibilidad Local, que es simplemente la inversa de la distancia de accesibilidad promedio.
Y la puntuación LOF final se calcula como:
Entonces, LOF compara la densidad de un punto con la densidad de sus vecinos.
Interpretación:
Si LRD(p) ≈ LRD (vecinos), entonces LOF ≈ 1 Si LRD(p) es mucho más pequeño, entonces LOF >> 1. Entonces p está en una región dispersa Si LRD(p) es mucho mayor → LOF < 1. Entonces p está en una región muy densa.
También hice una versión con más desarrollos y fórmulas más cortas.
Comprender lo que significa “anomalía” en modelos no supervisados
En el aprendizaje no supervisado, no existe una verdad fundamental. Y aquí es exactamente donde las cosas pueden complicarse.
No tenemos etiquetas.
No tenemos la “respuesta correcta”.
Sólo tenemos la estructura de los datos.
Tome esta pequeña muestra:
1, 2, 3, 7, 8, 12
(También tengo los derechos de autor).
Si lo miras intuitivamente, ¿cuál se siente como una anomalía?
Personalmente diría 12.
Ahora veamos los resultados. LOF dice que el valor atípico es 7.
(Y puedes notar que con k-distancia, diríamos que es 12.)
Ahora podemos comparar Isolation Forest y LOF uno al lado del otro.
A la izquierda, con el conjunto de datos 1, 2, 3, 9, ambos métodos coinciden:
9 es el claro valor atípico.
Isolation Forest le otorga la puntuación más baja,
y LOF le da el valor LOF más alto.
Si miramos más de cerca, para Isolation Forest: 1, 2 y 3 no tienen diferencias en la puntuación. Y LOF da una puntuación más alta para 2. Esto es lo que ya hemos notado.
Con el conjunto de datos 1, 2, 3, 7, 8, 12, la historia cambia.
Isolation Forest señala el 12 como el punto más aislado.
Esto coincide con la intuición: 12 está lejos de ser todo el mundo. LOF, sin embargo, resalta 7 en su lugar.
Entonces ¿quién tiene razón?
Es difícil decirlo.
En la práctica, primero debemos acordar con los equipos comerciales qué significa realmente “anomalía” en el contexto de nuestros datos.
Porque en el aprendizaje no supervisado no existe una verdad única.
Sólo existe la definición de “anomalía” que utiliza cada algoritmo.
Por eso es extremadamente importante entender
cómo funciona el algoritmo y qué tipo de anomalías está diseñado para detectar.
Sólo entonces podrá decidir si LOF, k-distance o Isolation Forest es la opción correcta para su situación específica.
Y este es todo el mensaje del aprendizaje no supervisado:
Los distintos algoritmos analizan los datos de forma diferente.
No existe un valor atípico “verdadero”.
Sólo la definición de lo que significa un valor atípico para cada modelo.
Por eso entender cómo funciona el algoritmo
es más importante que la puntuación final que produce.
Conclusión
LOF y Isolation Forest detectan anomalías, pero analizan los datos a través de lentes completamente diferentes.
k-distancia captura qué tan lejos debe viajar un punto para encontrar sus vecinos. LOF compara densidades locales. Isolation Forest aísla puntos mediante divisiones aleatorias.
E incluso en conjuntos de datos muy simples, estos métodos pueden no coincidir.
Un algoritmo puede marcar un punto como un valor atípico, mientras que otro resalta uno completamente diferente.
Y este es el mensaje clave:
En el aprendizaje no supervisado, no existe un valor atípico “verdadero”.
Cada algoritmo define anomalías según su propia lógica.
Por eso, comprender cómo funciona un método es más importante que el número que produce.
Sólo entonces podrá elegir el algoritmo adecuado para la situación adecuada e interpretar los resultados con confianza.