Čo je to drift rozdelenia a ako ho odhaliť (KS-test, PSI)?
sobes.tech AI
Odpoveď od AI
Posun rozdelenia — je zmena v rozdelení dát v čase, čo môže viesť k zhoršeniu kvality modelu strojového učenia, pretože model bol trénovaný na jednom rozdelení, zatiaľ čo v produkcii prichádzajú údaje z iného.
Na detekciu posunu rozdelenia sa často používajú štatistické testy a metriky:
-
KS test (Kolmogorov-Smirnov test) — neparametrický test, ktorý porovnáva dve vzorky a kontroluje, do akej miery sa ich rozdelenia líšia. Ak je p-hodnota testu nízka, znamená to, že rozdelenia sa významne líšia.
-
PSI (Index stability populácie) — metrika, ktorá meria zmenu v rozdelení premennej medzi dvomi obdobiami. PSI sa počíta na základe binov rozdelenia a ukazuje stupeň posunu. Obvykle:
- PSI < 0.1 — nevýznamný posun
- 0.1 < PSI < 0.25 — mierny posun
- PSI > 0.25 — významný posun
Príklad použitia KS testu v Pythone:
from scipy.stats import ks_2samp
reference_data = [...] # údaje z tréningovej vzorky
current_data = [...] # nové údaje
statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
print("Zistené posunutie rozdelenia")
else:
print("Rozdelenia sú podobné")
Týmto spôsobom pravidelné monitorovanie rozdelení pomocou KS testu a PSI pomáha včas odhaliť posun a prijať opatrenia (napríklad, retrénovať model).