Sobes.tech
Middle — Senior

Какво е разминаване в разпределението и как да го открием (KS тест, PSI)?

sobes.tech AI

Отговор от AI

Преместване на разпределението — това е промяна в разпределението на данните във времето, което може да доведе до влошаване на качеството на модела за машинно обучение, тъй като моделът е обучен върху едно разпределение, а в продукция данните идват от друго.

За откриване на преместване на разпределението често се използват статистически тестове и метрики:

  • KS тест (Kolmogorov-Smirnov тест) — непараметричен тест, който сравнява две проби и проверява колко се различават техните разпределения. Ако p-стойността на теста е ниска, това означава, че разпределенията се различават значително.

  • PSI (Индекс на стабилност на населението) — метрика, която измерва промяната в разпределението на променлива между два периода. PSI се изчислява по биновете на разпределението и показва степента на изместване. Обикновено:

    • PSI < 0.1 — незначително изместване
    • 0.1 < PSI < 0.25 — умерено изместване
    • PSI > 0.25 — значително изместване

Пример за използване на KS тест в Python:

from scipy.stats import ks_2samp

reference_data = [...]  # данни от обучаващата извадка
current_data = [...]    # нови данни

statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
    print("Обнаружен преместване на разпределението")
else:
    print("Разпределенията са сходни")

По този начин, редовният мониторинг на разпределенията с помощта на KS тест и PSI помага за своевременното откриване на преместване и предприемане на мерки (например, повторно обучение на модела).