Menu
CoddyTech

Anomalie-Scores

Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 37 von 51.

Ein Ja oder Nein verbirgt, wie ungewöhnlich eine Zeile ist. score_samples gibt jeder Zeile eine Bewertung: Je niedriger, desto ungewöhnlicher. Für die Verschreibungen einer Apotheke:

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

Dies gibt die drei ungewöhnlichsten aus:

     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

Ein Histogramm der Anomaliewerte von 150 Verschreibungen': die meisten liegen zwischen -0.55 und -0.35, einige reichen nach links bis -0.88, und ein roter gestrichelter Schwellenwert bei -0.6 mit 4 zu überprüfenden Werten

Wo du schneidest, ist deine Entscheidung: Wie viele Zeilen kann eine Person überprüfen? Sortiere, um sie zu ordnen, und vergleiche sie mit einem Schwellenwert, um Auffälligkeiten zu markieren.

challenge icon

Aufgabe

Mittel

Ein Auditor hat nur Zeit für wenige Spesenabrechnungen. Der Starter trainiert einen Isolation Forest; das Programm liest n und einen Schwellenwert ein.

  1. Bewerte jede Spesenabrechnung und speichere den Wert in einer neuen Spalte score.
  2. Gib die n ungewöhnlichsten Spesenabrechnungen aus, die ungewöhnlichste zuerst, wie unten gezeigt.
  3. Gib aus, wie viele Spesenabrechnungen einen Wert unter dem Schwellenwert haben.

Für ein anderes Unternehmen, 2 und -0.6:

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

Probier es selbst

import pandas as pd
from sklearn.ensemble import IsolationForest

# Eine Zeile pro Spesenabrechnung: Betrag, Belege, Uhrzeit der Einreichung und Tage nach der Reise
claims = pd.read_csv("claims.csv")
X = claims[["amount_eur", "items", "hour", "days_late"]]
n = int(input())
threshold = float(input())

# Aus Isolation Forest: der Forest, anhand aller Spesenabrechnungen trainiert
forest = IsolationForest(random_state=0).fit(X)

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler