← 8 · Atípicos y anomalías E6

Un 3,7 % de falsas alarmas puede ser 98 de cada 100 avisos

La pregunta de esta página

¿Cómo se sabe si un detector de anomalías sirve?

1 El problema

La página 16 pasa un IsolationForest por las 20.000 ventas y marca 760. Encuentra 15 de las 16 anomalías de la regla y además 745 ventas que eran normales. Contado así, parece un detector que casi acierta.

2 Por qué engaña

Esa frase mezcla tres cifras que responden a preguntas diferentes. Cuando lo que se busca es muy raro, la que más se cita, la tasa de falsos positivos, sale pequeña aunque casi todos los avisos sean falsos.

3 El principio

Tres preguntas, tres cifras
La tasa de falsos positivos mide qué parte de lo normal se marca por error. La precisión, qué parte de los avisos es real. La exhaustividad, qué parte de lo que había que encontrar se encontró. Un detector se juzga con las tres. A quien recibe los avisos le afecta sobre todo la segunda.

4 La solución

Calcular las tres contra una verdad conocida, que aquí es la regla del catálogo con sus 16 ventas imposibles y comparar los detectores entre sí.

5 Qué pasa con estos datos

Detector Marca Falsos positivos Precisión Exhaustividad
Rango intercuartílico sobre el importe 1.588 7,87 % 1,0 % 100,0 %
z-score mayor que 3 760 3,73 % 2,0 % 93,8 %
Rango intercuartílico de la cantidad, por producto 16 0,00 % 100,0 % 100,0 %
IsolationForest 760 3,73 % 2,0 % 93,8 %

El IsolationForest marca por error el 3,73 % de las ventas normales, una cifra que en una presentación parece buena. Pero de cada cien avisos suyos solo 2 son reales: quien los revise gastará casi todo su tiempo en ventas de servidores que no tenían nada raro.

El único detector con las tres cifras buenas es el más simple, el rango intercuartílico de la cantidad calculado dentro de cada producto. Acierta todo porque mide la misma variable con la que se definieron las anomalías, así que su resultado no es una evaluación independiente. El importe mezcla productos de 45 € con otros de 3.500.

Por qué dos detectores dan lo mismo
El z-score y el IsolationForest coinciden en las cuatro cifras porque los dos acaban marcando las ventas de más importe: en este fichero, todas las normales que marcan son de servidores. Dos métodos que miran lo mismo cuentan como una sola prueba.

6 Para qué sirve

Fraude, fallos de máquina, incidencias de facturación. En todos los casos lo que se busca es raro y la tasa de falsos positivos sola hace parecer bueno a cualquier detector. Lo que decide si el equipo seguirá mirando los avisos es la precisión, que es lo que la página de calibrar una alerta ajusta con el umbral.

El detalle técnico

Verdad de referencia: las 16 ventas con cantidad fuera del catálogo, sobre 19.984 ventas normales. Los tres primeros detectores se recalculan en el script; el IsolationForest se lee de ml.json, que lo calcula con una contaminación del 5 %. Marca 760 y no 1.000, que sería el 5 % de las 20.000, porque las ventas solo forman unas pocas combinaciones distintas de importe, cantidad y precio: el corte cae en medio de un grupo de ventas idénticas y el algoritmo las deja todas fuera.

Las tres cifras
tasa_falsos   = falsos / normales        # de lo que estaba bien, cuanto se marco
precision     = verdaderos / marcadas    # de lo que se marco, cuanto era de verdad
exhaustividad = verdaderos / reales      # de lo que habia que encontrar, cuanto se encontro

Fuente: atipicos_kpi.json, campo e6_tasas.