Isolation Forest
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 35 de 51.
Los puntos atípicos son fáciles de aislar. Divide los datos al azar, una y otra vez, hasta que un punto quede aislado:
El punto más lejano necesitó 2 cortes; el más concurrido, 8. Un bosque de aislamiento promedia los cortes de 100 árboles aleatorios:
from sklearn.ensemble import IsolationForest
forest = IsolationForest(contamination=0.02, random_state=0)
flags = forest.fit_predict(X)fit_predict da -1 para las filas atípicas y 1 para el resto. contamination es la proporción de filas que esperas que sean atípicas.
Desafío
IntermedioUn puerto registró 160 turnos de grúa: movimientos por hora y energía por movimiento. ¿Qué turnos fueron extraños?
- Marca los turnos con un bosque de aislamiento,
contamination=0.03,random_state=0. Imprime el recuento como se muestra a continuación. - Representa los turnos normales como puntos con la etiqueta
normal. - Rodea los marcados:
s=150, facecolors="none", edgecolors="red", con la etiquetaflagged. Añade una leyenda y muestra el gráfico.
Para otro puerto, con 200 turnos:
Flagged: 6 of 200 shiftsCoddy describe después tu gráfico.
Pruébalo tú mismo
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
# Una fila por turno de grúa en el puerto: velocidad y consumo de energía
shifts = pd.read_csv("cranes.csv")
X = shifts[["moves_per_hour", "kwh_per_move"]]
# No cambies las líneas siguientes
fig, ax = plt.subplots()
ax.set_title("Crane Shifts")
ax.set_xlabel("Moves per hour")
ax.set_ylabel("Energy per move (kWh)")
# 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