Sobes.tech
Middle — Senior

Kas ir sadales novirze un kā to noteikt (KS-tests, PSI)?

sobes.tech AI

Atbilde no AI

Izplatījuma novirze — tas ir datu sadalījuma izmaiņas laika gaitā, kas var novest pie mašīnmācīšanās modeļa kvalitātes pasliktināšanās, jo modelis ir apmācīts uz viena sadalījuma, bet ražošanā dati nāk no cita avota.

Lai noteiktu izplatījuma novirzi, bieži izmanto statistiskos testus un metriku:

  • KS tests (Kolmogorova-Smirnova tests) — neparametriska tests, kas salīdzina divas paraugus un pārbauda, cik ļoti to sadalījumi atšķiras. Ja testa p-vērtība ir zema, tas nozīmē, ka sadalījumi būtiski atšķiras.

  • PSI (Populācijas stabilitātes indekss) — metriks, kas mēra izmaiņas vienas mainīgās sadalījumā starp diviem periodiem. PSI tiek aprēķināts pēc sadalījuma binēm un rāda novirzes pakāpi. Parasti:

    • PSI < 0.1 — nenozīmīga novirze
    • 0.1 < PSI < 0.25 — mērena novirze
    • PSI > 0.25 — nozīmīga novirze

Python piemērs, kā izmantot KS testu:

from scipy.stats import ks_2samp

reference_data = [...]  # apmācības parauga dati
current_data = [...]    # jauni dati

statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
    print("Izplatījuma novirze konstatēta")
else:
    print("Sadali ir līdzīgi")

Regulāra sadalījumu uzraudzība ar KS testu un PSI palīdz savlaicīgi atklāt novirzi un veikt nepieciešamās darbības (piemēram, modeļa atkārtotu apmācību).