Local Outlier Factor
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 36 de 51.
Alguns pontos atípicos se escondem dentro do intervalo dos dados. O fator de valores atípicos locais, LOF, compara o quão densamente ocupado é o local de cada ponto com os locais de seus vizinhos:
Às vezes, os compradores ficam 6 horas. Mas os vizinhos deste carro são pessoas que se deslocam diariamente, bem agrupadas, e ele fica longe da aglomeração delas:
from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.02)
flags = lof.fit_predict(X)As mesmas respostas de antes: -1 anômalo, 1 normal. n_neighbors define o quão local é a comparação.
Desafio
MédioUma empresa de telefonia procura contas diferentes das de seus vizinhos. O código inicial padroniza os dados e sinaliza contas com uma floresta de isolamento; o programa lê k.
- Sinalize contas com LOF:
n_neighbors=k,contamination=0.03. - Imprima a contagem de cada detector e quantas contas ambos sinalizam.
- Liste as contas sinalizadas apenas pelo LOF, na ordem da tabela, como abaixo.
Para uma empresa menor e 10:
Isolation forest: 5 accounts
LOF: 5 accounts
Both: 4 accounts
Only LOF:
A118: 960 minutes, 6.2 GBExperimente você mesmo
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
# Uma linha por conta telefônica: minutos de chamadas e dados móveis de um mês
accounts = pd.read_csv("accounts.csv")
X = StandardScaler().fit_transform(accounts[["call_minutes", "data_gb"]])
k = int(input())
# Do Isolation Forest: -1 para as contas que o algoritmo considera atípicas
forest_flags = IsolationForest(contamination=0.03, random_state=0).fit_predict(X)
# Escreva seu código abaixo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Aprendizado não supervisionado
1Encontrando Grupos
Aprendendo sem RótulosMedindo a SimilaridadeK-Means à MãoK-Means no scikit-learnRevisão: Frequentadores da Academia4Clustering Hierárquico
Mesclando passo a passoModelos aglomerativosDendrogramasRevisão: raças de cães7PCA na prática
Visualizando 64 dimensõesComponentes como padrõesComprimir e reconstruirPCA antes de um modeloRecapitulação: scanner facial10Projeto: Explorando os Dígitos
Observe os DígitosReduza com PCAAgrupe os DígitosDê Nome aos GruposEncontre os Diferentes2Escolhendo k
InérciaO método do cotoveloPontuações de silhuetaEscale antes de agruparRecapitulando: zonas de entrega8Detecção de Anomalias
Encontrando os DiferentõesIsolation ForestLocal Outlier FactorPontuações de AnomaliaRevisão: Monitoramento do ServidorPratique por conta própria: Compilador de Python online