Co je to drift rozdělení a jak ho odhalit (KS-test, PSI)?
sobes.tech AI
Odpověď od AI
Posun rozdělení — je změna v rozdělení dat v čase, která může vést ke zhoršení kvality modelu strojového učení, protože model byl natrénován na jednom rozdělení, zatímco v produkci přicházejí data z jiného.
Pro detekci posunu rozdělení se často používají statistické testy a metriky:
-
KS test (Kolmogorov-Smirnovův test) — neparametrický test, který porovnává dvě vzorky a kontroluje, jak moc se jejich rozdělení liší. Pokud je p-hodnota testu nízká, znamená to, že rozdělení se významně liší.
-
PSI (Index stability populace) — metrika, která měří změnu v rozdělení proměnné mezi dvěma obdobími. PSI se počítá na základě binů rozdělení a ukazuje stupeň posunu. Obvykle:
- PSI < 0.1 — nevýznamný posun
- 0.1 < PSI < 0.25 — mírný posun
- PSI > 0.25 — významný posun
Příklad použití KS testu v Pythonu:
from scipy.stats import ks_2samp
reference_data = [...] # data z tréninkové sady
current_data = [...] # nová data
statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
print("Detekován posun rozdělení")
else:
print("Rozdělení jsou podobná")
Tímto způsobem pravidelné sledování rozdělení pomocí KS testu a PSI pomáhá včas odhalit posun a přijmout opatření (například retrénovat model).