Datadrift

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Waarom datadrift detecteren?

Een grafiek met de verandering in de verdeling van hartziekten naar leeftijd in de tijd: tegenwoordig minder gevallen en op hogere leeftijd

End-to-End Machine Learning

De Kolmogorov–Smirnov-test

  • Veelgebruikt om datadrift te detecteren
  • Vergelijkt datasetsamples om distributies te toetsen

Twee grafieken met het verschil tussen de verdeling van een initiële trainingsdataset en een nieuwe inferentiedataset met datadrift

End-to-End Machine Learning

De functie ks_2samp() gebruiken

  • De functie ks_2samp() geeft twee waarden terug: teststatistiek en p-waarde.
  • Gebruik de p-waarde om de nulhypothese van gelijke verdelingen te accepteren/verwerpen.
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

Datadrift corrigeren

Model updaten voor nieuwe data

  • Model hertrainen
  • Parameters bijstellen/updaten

Te weinig nieuwe/inferentiedata?

  • Hertrain op een gemengde dataset
  • Verzamel meer nieuwe data

Een stroomdiagram van het hertrainen en herdeployen van een model met datadrift

Een diagram dat periodiek hertrainen op steeds meer nieuwe data toont naarmate die beschikbaar komt

End-to-End Machine Learning

Meer bronnen voor detectie en correctie van datadrift

End-to-End Machine Learning

Laten we oefenen!

End-to-End Machine Learning

Preparing Video For Download...