Menu
CoddyTech

Punteggi di anomalia

Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 37 di 51.

Un sì o un no nasconde quanto è insolita una riga. score_samples assegna un punteggio a ogni riga: più è basso, più la riga è strana. Per le prescrizioni di una farmacia:

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

Stampa i tre più strani:

     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

Un istogramma dei punteggi di anomalia di 150 prescrizioni': la maggior parte è compresa tra -0.55 e -0.35, alcune si estendono verso sinistra fino a -0.88 e una soglia tratteggiata rossa a -0.6 indica 4 da controllare

Dove effettuare il taglio è una tua scelta: quante righe può controllare una persona? Ordina per classificare, confronta con una soglia per segnalare.

challenge icon

Sfida

Medio

Un revisore ha tempo solo per esaminare poche richieste di rimborso spese. Il codice iniziale addestra una foresta di isolamento; il programma legge n e una soglia.

  1. Assegna un punteggio a ogni richiesta in una nuova colonna score.
  2. Stampa le n richieste più insolite, dalla più strana alla meno strana, come mostrato di seguito.
  3. Stampa quante richieste hanno un punteggio inferiore alla soglia.

Per un'altra azienda, 2 e -0.6:

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

Provalo tu

import pandas as pd
from sklearn.ensemble import IsolationForest

# Una riga per ogni richiesta di rimborso spese: importo, ricevute, ora di presentazione e giorni trascorsi dal viaggio
claims = pd.read_csv("claims.csv")
X = claims[["amount_eur", "items", "hour", "days_late"]]
n = int(input())
threshold = float(input())

# Da Isolation Forest: la foresta, addestrata su tutte le richieste di rimborso
forest = IsolationForest(random_state=0).fit(X)

# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento non supervisionato

Esercitati da solo: Compilatore Python online