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