Datadrift

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Varför datadriftdetektering behövs

Ett diagram som visar hur förekomsten av hjärtsjukdom vid olika åldrar förändrats över tid – idag är den mindre vanlig och uppträder vid högre ålder

End-to-End Machine Learning

Kolmogorov-Smirnov-testet

  • Vanligt använt för att detektera datadrift
  • Jämför skillnader mellan datamängdsurval för att bedöma fördelningslikhet

Två diagram som visar skillnaden mellan fördelningen i en ursprunglig träningsdatamängd och en nyare inferensdatamängd som har genomgått datadrift

End-to-End Machine Learning

Använda funktionen `ks_2samp()`

  • Funktionen ks_2samp() returnerar två värden: teststatistika och p-värde.
  • Använd p-värdet för att acceptera eller förkasta nollhypotesen om fördelningslikhet.
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

Korrigera datadrift

Uppdatera modellen med hänsyn till ny data

  • Träna om modellen
  • Justera/uppdatera modellens parametrar

För lite ny data/inferensdata?

  • Träna om modellen på en blandad datamängd
  • Öka mängden ny data

Ett flödesschema som visar processen för att träna om och omdriftsätta en modell som påverkas av datadrift

Ett diagram som visar hur en modell regelbundet tränas om på ökande mängder ny data i takt med att sådan data blir tillgänglig över tid

End-to-End Machine Learning

Fler resurser för att detektera och åtgärda datadrift

End-to-End Machine Learning

Nu kör vi en övning!

End-to-End Machine Learning

Preparing Video For Download...