Isolation Forest
Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 35 de 51.
Pontos fora do padrão são fáceis de isolar. Divida os dados aleatoriamente, repetidas vezes, até que um ponto fique sozinho:
O ponto mais distante precisou de 2 cortes; o ponto mais aglomerado, de 8. Uma floresta de isolamento calcula a média dos cortes em 100 árvores aleatórias:
from sklearn.ensemble import IsolationForest
forest = IsolationForest(contamination=0.02, random_state=0)
flags = forest.fit_predict(X)fit_predict retorna -1 para as linhas incomuns e 1 para as demais. contamination é a proporção de linhas que você espera que sejam incomuns.
Desafio
MédioUm porto registrou 160 turnos de guindaste: movimentações por hora e energia por movimentação. Quais turnos foram estranhos?
- Sinalize os turnos com uma floresta de isolamento,
contamination=0.03,random_state=0. Imprima a contagem como abaixo. - Mostre os turnos normais como pontos, identificados como
normal. - Circule os sinalizados:
s=150, facecolors="none", edgecolors="red", identificados comoflagged. Adicione uma legenda e exiba o gráfico.
Para outro porto, com 200 turnos:
Flagged: 6 of 200 shiftsEm seguida, Coddy descreve seu gráfico.
Experimente você mesmo
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
# Uma linha por turno de guindaste no porto: velocidade e consumo de energia
shifts = pd.read_csv("cranes.csv")
X = shifts[["moves_per_hour", "kwh_per_move"]]
# Não altere as linhas abaixo
fig, ax = plt.subplots()
ax.set_title("Crane Shifts")
ax.set_xlabel("Moves per hour")
ax.set_ylabel("Energy per move (kWh)")
# 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