Menu
CoddyTech

Puntuaciones de anomalía

Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 37 de 51.

Un sí o un no oculta lo inusual que es una fila. score_samples asigna una puntuación a cada fila: cuanto más baja, más extraña. Para las recetas de una farmacia:

forest = IsolationForest(random_state=0).fit(X)
rx["score"] = forest.score_samples(X)
print(rx.sort_values("score").head(3))

Esto imprime los tres más extraños:

     pills  refills  price     score
17     300        0  120.0 -0.881478
88      28       11   11.5 -0.708524
120     30        1   64.0 -0.700620

Un histograma de las puntuaciones de anomalía de 150 recetas: la mayoría entre -0.55 y -0.35, unas pocas se extienden hacia la izquierda hasta -0.88, y un umbral discontinuo rojo en -0.6 con 4 para revisar

Dónde cortar es tu elección: ¿cuántas filas puede revisar una persona? Ordena para clasificarlas y compara con un umbral para marcar.

challenge icon

Desafío

Intermedio

Un auditor solo tiene tiempo para revisar unas pocas reclamaciones de gastos. El código inicial ajusta un bosque de aislamiento; el programa lee n y un umbral.

  1. Calcula la puntuación de cada reclamación en una nueva columna score.
  2. Imprime las n reclamaciones más inusuales, empezando por la más extraña, como se muestra a continuación.
  3. Imprime cuántas reclamaciones tienen una puntuación inferior al umbral.

Para otra empresa, 2 y -0.6:

Most unusual claims:
  C003: 1960 EUR, score -0.763
  C040: 80 EUR, score -0.757
Below -0.6: 6 claims

Pruébalo tú mismo

import pandas as pd
from sklearn.ensemble import IsolationForest

# Una fila por cada solicitud de reembolso de gastos: importe, recibos, hora de presentación y días transcurridos desde el viaje
claims = pd.read_csv("claims.csv")
X = claims[["amount_eur", "items", "hour", "days_late"]]
n = int(input())
threshold = float(input())

# De Isolation Forest: el bosque, ajustado con todas las solicitudes
forest = IsolationForest(random_state=0).fit(X)

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje no supervisado

Practica por tu cuenta: Compilador de Python online