Sobes.tech
Middle — Senior

Kas yra paskirstymo nuokrypis ir kaip jį nustatyti (KS-testas, PSI)?

sobes.tech AI

Atsakymas iš AI

Pasiskirstymo poslinkis — tai duomenų paskirstymo pokytis laikui bėgant, kuris gali sukelti mašininio mokymosi modelio kokybės sumažėjimą, nes modelis buvo apmokytas viename paskirstyme, o gamyboje duomenys gaunami iš kito.

Norint nustatyti paskirstymo poslinkį, dažnai naudojami statistiniai testai ir metrikos:

  • KS testas (Kolmogorovo-Smirnovo testas) — neparametrinis testas, kuris lygina dvi imtis ir tikrina, kiek jų paskirstymai skiriasi. Jei testo p-reikšmė yra žema, tai reiškia, kad paskirstymai reikšmingai skiriasi.

  • PSI (Populiacijos stabilumo indeksas) — metrika, kuri matuoja pokytį vienos kintamosios paskirstyme tarp dviejų laikotarpių. PSI skaičiuojamas pagal paskirstymo binus ir rodo poslinkio laipsnį. Paprastai:

    • PSI < 0.1 — nereikšmingas poslinkis
    • 0.1 < PSI < 0.25 — vidutinis poslinkis
    • PSI > 0.25 — reikšmingas poslinkis

Python pavyzdys, kaip naudoti KS testą:

from scipy.stats import ks_2samp

reference_data = [...]  # mokymo imties duomenys
current_data = [...]    # nauji duomenys

statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
    print("Paskirstymo poslinkis aptiktas")
else:
    print("Paskirstymai panašūs")

Reguliariai stebint paskirstymus naudojant KS testą ir PSI, galima laiku nustatyti poslinkį ir imtis priemonių (pavyzdžiui, modelio permokymas).