Какво е разминаване в разпределението и как да го открием (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 помага за своевременното откриване на преместване и предприемане на мерки (например, повторно обучение на модела).