7 · Isolation Forest: anomalías por longitud de camino
Los árboles aleatorios aprovechan la dispersión — los outliers se aíslan en menos splits, lo que les da una longitud de camino promedio más corta y una puntuación de anomalía alta.
Las anomalías son más fáciles de AISLAR que los puntos normales — Isolation Forest construye árboles aleatorios y usa la longitud de camino promedio para puntuar los outliers.
Sin esto:
Sin Isolation Forest recurrirías a z-scores por feature por separado y perderías anomalías multidimensionales.
La detección de anomalías (también llamada detección de outliers) es la tarea de encontrar puntos que no se ajustan a la distribución del resto de los datos. A diferencia del clustering, el objetivo no es agrupar puntos — es marcar los pocos que resultan inusuales.
Los enfoques clásicos (z-scores, cercas IQR) tratan cada feature de forma independiente. Fallan con anomalías multidimensionales: un punto puede ser perfectamente normal en la feature A y en la feature B, pero la combinación (A, B) es rara. Ahí entra Isolation Forest.
Idea central: las anomalías son más fáciles de aislar que los puntos normales. Un árbol aleatorio particiona el espacio con splits alineados a los ejes elegidos al azar. Para aislar un punto normal se necesitan muchos splits — está en una región densa, así que separarlo de sus vecinos requiere muchos cortes. Para aislar un outlier bastan muy pocos — está solo en una esquina dispersa del espacio.
Algoritmo:
-
Construye un bosque de iTrees de aislamiento. Cada árbol: submuestrea aleatoriamente n_samples puntos, luego elige recursivamente un feature y un umbral aleatorio dentro del rango del feature, dividiendo hasta que cada hoja tenga un solo punto o se alcance la profundidad máxima.
-
Para cada punto, calcula la longitud de camino promedio
h(x)a lo largo de todos los árboles — cuántos splits tarda en aislar a x en promedio. -
La puntuación de anomalía se define como:
score(x) = 2^(−h(x) / c(n))
donde c(n) es la longitud de camino esperada en un árbol de búsqueda binaria de n nodos (factor de normalización). Puntaje cercano a 1 → anomalía (se aisla rápido); puntaje cercano a 0.5 → normal (necesita muchos splits).
Por qué Isolation Forest es tan útil:
- Funciona con datos multidimensionales en bruto — no requiere métrica de distancia.
- Escala linealmente: entrenamiento O(n log n).
- Maneja datasets de alta dimensionalidad donde los métodos basados en distancia fallan.
- El único parámetro
contaminationfija la fracción esperada de outliers.
Python (in browser)
Isolation Forest sobre 200 puntos normales + 10 outliers inyectados — las X rojas son las anomalías predichas. Con contamination=0.05 el modelo marca aproximadamente el 5% de los puntos.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Mapa de calor de decision_function de Isolation Forest — las regiones rojas se puntúan como anómalas (puntuación baja), las verdes como normales. Los outliers inyectados caen en las zonas más rojas.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Barrido de contaminación [0.01, 0.05, 0.1, 0.2] — la cantidad de puntos marcados es aproximadamente contamination × n_samples, confirmando que contamination controla el umbral de decisión.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Cuándo Isolation Forest brilla — condiciones ideales, fortalezas, debilidades y aplicaciones reales.
¿Por qué las anomalías tienen caminos promedio más cortos en un Isolation Forest?
- Isolation Forest puntúa las anomalías por la longitud de camino promedio en árboles aleatorios — camino más corto = más fácil de aislar = más anómalo.
- La puntuación de anomalía es 2^(−h(x)/c(n)) — cercana a 1 para anomalías, cercana a 0.5 para puntos normales.
- contamination define la fracción de puntos a marcar como anomalías — ajusta el umbral de decisión, no la estructura de los árboles.
- Isolation Forest maneja datos de alta dimensionalidad y features mixtas donde los métodos basados en distancia o por feature fallan.
- Usa Isolation Forest para anomalías globales (fraude, intrusiones, picos en sensores); usa LOF cuando el contexto local importa (próxima lección).
Detección de fraude en tarjetas de crédito, detección de intrusiones en redes, monitoreo de sensores industriales, alertas de anomalías en dispositivos médicos — cualquier lugar donde necesites marcar eventos raros en flujos de datos multivariados sin ejemplos etiquetados.
Si lo quitas: Recurrirías a z-scores univariados por feature y perderías anomalías multidimensionales donde ningún feature individual parece inusual pero la combinación es rara.