Daten-Drift

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Warum Daten-Drift erkennen?

Ein Diagramm zeigt die Veränderung der Herzkrankheitsverteilung nach Alter über die Zeit – heute gibt es weniger Fälle, und sie treten in höherem Alter auf

End-to-End Machine Learning

Der Kolmogorov-Smirnov-Test

  • Häufig zur Erkennung von Daten-Drift genutzt
  • Vergleicht Stichproben, um Verteilungsähnlichkeit zu bestimmen

Zwei Diagramme zeigen den Unterschied zwischen der Verteilung des ursprünglichen Trainingsdatensatzes und eines neuen Inferenz-Datensatzes mit Daten-Drift

End-to-End Machine Learning

Die Funktion ks_2samp() verwenden

  • Die Funktion ks_2samp() gibt zwei Werte zurück: Teststatistik und p-Wert.
  • Nutze den p-Wert, um die Nullhypothese der Verteilungsähnlichkeit anzunehmen/abzulehnen.
from scipy.stats import ks_2samp
# load the 1D data distribution samples for comparison
sample_1, sample_2 = training_dataset_sample, current_inference_sample
# perform the KS-test - ensure input samples are numpy arrays
test_statistic, p_value = ks_2samp(sample_1, sample_2)
if p_value < 0.05:
    print("Reject null hypothesis - data drift might be occuring")
else:
    print("Samples are likely to be from the same dataset")
End-to-End Machine Learning

Daten-Drift korrigieren

Modell an neue Daten anpassen

  • Modell neu trainieren
  • Parameter neu einstellen/aktualisieren

Nicht genug neue/Inferenzdaten?

  • Modell auf gemischtem Datensatz neu trainieren
  • Mehr neue Daten sammeln

Ein Flussdiagramm zeigt das Retraining und Redeployment eines Modells mit Daten-Drift

Ein Diagramm zeigt periodisches Retraining mit zunehmend mehr neuen Daten, sobald diese verfügbar sind

End-to-End Machine Learning

Weitere Ressourcen zum Erkennen und Korrigieren von Daten-Drift

End-to-End Machine Learning

Lass uns üben!

End-to-End Machine Learning

Preparing Video For Download...