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.700620Dónde cortar es tu elección: ¿cuántas filas puede revisar una persona? Ordena para clasificarlas y compara con un umbral para marcar.
Desafío
IntermedioUn 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.
- Calcula la puntuación de cada reclamación en una nueva columna
score. - Imprime las
nreclamaciones más inusuales, empezando por la más extraña, como se muestra a continuación. - 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 claimsPrué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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje no supervisado
1Encontrar grupos
Aprender sin etiquetasMedir la similitudK-Means a manoK-Means en scikit-learnRepaso: miembros del gimnasio7PCA en la práctica
Visualizar 64 dimensionesComponentes como patronesComprimir y reconstruirPCA antes de un modeloRepaso: escáner facial10Proyecto: Explorador de dígitos
Observa los dígitosReduce con PCAAgrupa los dígitosPon nombre a los gruposEncuentra los diferentes2Elegir k
InerciaEl método del codoPuntuaciones de siluetaEscalar antes de agruparRepaso: zonas de entrega8Detección de anomalías
Encontrar los casos atípicosIsolation ForestLocal Outlier FactorPuntuaciones de anomalíaRepaso: vigilancia del servidor3Interpretación de los clústeres
Perfilado de clústeresCentros en unidades realesClústeres frente a etiquetas conocidasCuándo falla K-MeansRepaso: cata de téPractica por tu cuenta: Compilador de Python online