Menu
CoddyTech

Pontuações de Anomalia

Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 37 de 51.

Um sim ou não esconde o quanto uma linha é incomum. score_samples atribui uma pontuação a cada linha: quanto menor, mais estranha. Para as prescrições de uma farmácia:

forest = IsolationForest(random_state=0).fit(X)
rx["score"] = forest.score_samples(X)
print(rx.sort_values("score").head(3))

Isso imprime as três mais estranhas:

     pills  refills  price     score
17     300        0  120.0 -0.881478
88      28       11   11.5 -0.708524
120     30        1   64.0 -0.700620

Um histograma das pontuações de anomalia de 150 prescrições': a maioria entre -0.55 e -0.35, algumas se estendendo à esquerda até -0.88, e um limite tracejado vermelho em -0.6 com 4 para verificar

Onde cortar é uma escolha sua: quantas linhas uma pessoa consegue verificar? Ordene para classificar e compare com um limite para sinalizar.

challenge icon

Desafio

Médio

Um auditor tem tempo para analisar apenas algumas solicitações de reembolso. O código inicial ajusta uma floresta de isolamento; o programa lê n e um limite.

  1. Atribua uma pontuação a cada solicitação em uma nova coluna score.
  2. Imprima as n solicitações mais incomuns, começando pela mais estranha, como abaixo.
  3. Imprima quantas solicitações têm pontuação abaixo do limite.

Para outra empresa, 2 e -0.6:

Most unusual claims:
  C003: 1960 EUR, score -0.763
  C040: 80 EUR, score -0.757
Below -0.6: 6 claims

Experimente você mesmo

import pandas as pd
from sklearn.ensemble import IsolationForest

# Uma linha por solicitação de reembolso: valor, recibos, horário em que foi enviada e dias após a viagem
claims = pd.read_csv("claims.csv")
X = claims[["amount_eur", "items", "hour", "days_late"]]
n = int(input())
threshold = float(input())

# Do Isolation Forest: a floresta, ajustada com todas as solicitações de reembolso
forest = IsolationForest(random_state=0).fit(X)

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Compilador de Python online