Saltar contenido

Chapter 4

Algoritmo N°3 – Isolation Forest: para aislar anomalías

El objetivo principal de un algoritmo de detección de anomalías es identificar datos atípicos que no se ajustan a otros datos.

El problema no es sencillo. Eso es porque no necesariamente se sabe de antemano lo que caracteriza a una anomalía. Por lo tanto, depende del algoritmo aprender una métrica adecuada con la que detectar anomalías en los datos.

Los casos de uso encontrados por nuestros clientes incluyen:

  • problemas de fraude de transacciones bancarias;
  • la detección de fallas o daños materiales como parte de la optimización del marco de mantenimiento predictivo.

La detección de anomalías suele ser una técnica de aprendizaje no supervisado que consiste en detectar muestras de datos con características muy diferentes a las de otras muestras.

Para ello, un primer enfoque (teorizado, por ejemplo, por los métodos lean manufacturing y 6 sigma) consiste en calcular la media y la desviación estándar de los datos para determinar una función de “densidad de probabilidad”. Esta función se utiliza luego para calcular la probabilidad de existencia de una muestra atípica de datos. La regla es la siguiente: la muestra se considera anormal si esta probabilidad está por debajo de cierto umbral.

Un umbral permite aislar anomalías; puede ser fijo o adaptable. Un umbral adaptable se actualiza constantemente y se adapta a los datos en tiempo real.

Estas técnicas son muy efectivas, pero en los últimos años se han desarrollado otros métodos más modernos con los que reconocer anomalías en los datos.

El bosque de aislamiento se utiliza para calcular una puntuación de anomalía para cada observación en un conjunto de datos. Esta puntuación da una medida de la normalidad de cada observación basada en el conjunto de datos. Para calcular esta puntuación, el algoritmo aísla los datos relevantes de forma recursiva. Elige una variable al azar y establece un umbral de corte al azar, antes de evaluar si esto permite aislar una observación particular.

Este tipo de algoritmo es preferible en el caso de un problema matemático de gran escala (con un gran número de observaciones y variables).

Ilustración de operación

En el siguiente ejemplo, el aislamiento del bosque se aplica a los datos que contienen dos variables (x e y) y una única anomalía (el punto extremo que aparece en rojo en el gráfico).

Principio del algoritmo

Resultado: ¡Has entendido la idea! En nuestro ejemplo, solo 3 divisiones (también conocidas como “separaciones”) son suficientes para aislar la muestra en rojo (una supuesta anomalía, debido a su distancia de los otros datos). Sin embargo, en la masa de datos (es decir, datos “normales”), se habrían necesitado quizás entre 100 y 400 divisiones para aislar una muestra.

Recuerde: cuanto menor sea el número de divisiones, mayor será la probabilidad de que la muestra observada sea una anomalía.

¿Un bosque de árboles?

Cabe señalar que con el proceso de divisiones aleatorias, es posible aislar incorrectamente una muestra de la masa de datos (datos “normales”). Es poco probable, pero puede suceder. La solución para superar este riesgo de aislar incorrectamente una muestra normal pasa por generar varios árboles de decisión como estimadores. Cada uno de estos árboles realizará una secuencia de divisiones aleatorias. Entonces se considerará el promedio de todos los resultados. Por lo tanto, podemos descalificar los pocos errores menores que pueden cometer algunos de estos estimadores porque “la mayoría prevalecerá”. Una vez más, las técnicas de conjunto dan a nuestros resultados una robustez vital.

Usando el algoritmo en Python

La clase sklearn.ensemble.IsolationForest se usa para instanciar un modelo de aislamiento de bosque.

Implementación del algoritmo del bosque de aislamiento

El resultado es concluyente: el algoritmo ha entendido que hay un punto periférico (una anomalía) en los datos.

Tenga en cuenta que en la implementación de sklearn, el umbral de puntos para ser considerados anormales está definido por la tasa de contaminación. En nuestro ejemplo, la tasa de contaminación es igual a 0,01 (es decir, 1%). Por lo tanto, se considera que nuestros datos contienen un 1 % de anomalías.

Resumir…

Estos tres primeros capítulos se han dedicado a los algoritmos basados ​​en árboles de decisión. Estos algoritmos se usan ampliamente y son extremadamente efectivos para resolver problemas de datos.

Por cierto, si espera trabajar como científico de datos, es muy probable que los entrevistadores le pidan que describa cómo funciona uno de estos algoritmos.

La puntuación de anomalía para cada observación depende del parámetro de “contaminación”, que se establece durante la fase de entrenamiento. Esto implica que incluso antes de construir el modelo de aprendizaje automático, es esencial tener una buena idea del porcentaje de datos anormales.