Sobes.tech
Middle — Senior

Č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).