Dryft danych

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Potrzeba wykrywania dryfu danych

Wykres przedstawiający zmianę rozkładu chorób serca w różnych grupach wiekowych na przestrzeni czasu – obecnie przypadki są rzadsze i występują w starszym wieku

End-to-End Machine Learning

Test Kołmogorowa-Smirnowa

  • Powszechnie stosowany do wykrywania dryfu danych
  • Porównuje różnice między próbkami zbiorów danych w celu oceny podobieństwa rozkładów

Dwa wykresy przedstawiające różnicę między rozkładem początkowego zbioru treningowego a nowszym zbiorem inferencyjnym, który uległ dryfowi danych

End-to-End Machine Learning

Użycie funkcji ks_2samp()

  • Funkcja ks_2samp() zwraca dwie wartości: statystykę testową i p-wartość.
  • P-wartość służy do przyjęcia/odrzucenia hipotezy zerowej o podobieństwie rozkładów.
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

Korygowanie dryfu danych

Aktualizacja modelu z uwzględnieniem nowych danych

  • Ponowne trenowanie modelu
  • Dostosowanie / aktualizacja parametrów modelu

Za mało nowych danych inferencyjnych?

  • Ponowne trenowanie na mieszanym zbiorze danych
  • Zwiększenie ilości nowych danych

Schemat blokowy przedstawiający proces ponownego trenowania i wdrażania modelu dotkniętego dryfem danych

Diagram przedstawiający okresowe ponowne trenowanie modelu na rosnących ilościach nowych danych w miarę ich napływu

End-to-End Machine Learning

Dodatkowe zasoby do wykrywania i korygowania dryfu danych

End-to-End Machine Learning

Czas na ćwiczenia!

End-to-End Machine Learning

Preparing Video For Download...