Local Outlier Factor
Parte de la sección Aprendizaje no supervisado del Journey de Machine Learning de Coddy. Lección 36 de 51.
Algunos puntos extraños se esconden dentro del rango de los datos. El factor local de valores atípicos, LOF, compara lo concurrido que está el lugar de cada punto con los lugares de sus vecinos:
A veces, los compradores se quedan 6 horas. Pero los vecinos de este coche son personas que se desplazan al trabajo, muy agrupadas, y está lejos de su grupo:
from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.02)
flags = lof.fit_predict(X)Las mismas respuestas que antes: -1 atípico, 1 normal. n_neighbors determina qué tan local es la comparación.
Desafío
IntermedioUna compañía telefónica busca cuentas diferentes a las de sus vecinas. El código inicial escala los datos y marca cuentas con un bosque de aislamiento; el programa lee k.
- Marca cuentas con LOF:
n_neighbors=k,contamination=0.03. - Imprime el recuento de cada detector y cuántas cuentas marcan ambos.
- Enumera las cuentas que solo marca LOF, en el orden de la tabla, como se muestra a continuación.
Para una compañía más pequeña y 10:
Isolation forest: 5 accounts
LOF: 5 accounts
Both: 4 accounts
Only LOF:
A118: 960 minutes, 6.2 GBPruébalo tú mismo
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
# Una fila por cuenta telefónica: minutos de llamadas y datos móviles de un mes
accounts = pd.read_csv("accounts.csv")
X = StandardScaler().fit_transform(accounts[["call_minutes", "data_gb"]])
k = int(input())
# De Isolation Forest: -1 para las cuentas que el bosque considera anómalas
forest_flags = IsolationForest(contamination=0.03, random_state=0).fit_predict(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