Un 3,7 % de falsas alarmas puede ser 98 de cada 100 avisos
¿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
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.
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.