O que é o desvio de distribuição e como detectá-lo (teste KS, PSI)?
sobes.tech IA
Resposta da IA
O desvio de distribuição é uma mudança na distribuição dos dados ao longo do tempo, o que pode levar à deterioração da qualidade do modelo de aprendizado de máquina, pois o modelo é treinado em uma distribuição, enquanto em produção os dados vêm de outra.
Para detectar o desvio de distribuição, frequentemente usam-se testes estatísticos e métricas:
-
Teste KS (Kolmogorov-Smirnov) — um teste não paramétrico que compara duas amostras e verifica o quão diferentes são suas distribuições. Se o valor p do teste for baixo, significa que as distribuições diferem significativamente.
-
PSI (Índice de Estabilidade da População) — uma métrica que mede a mudança na distribuição de uma variável entre dois períodos. O PSI é calculado pelos bins de distribuição e mostra o grau de deslocamento. Normalmente:
- PSI < 0.1 — deslocamento insignificante
- 0.1 < PSI < 0.25 — deslocamento moderado
- PSI > 0.25 — deslocamento significativo
Exemplo de uso do teste KS em Python:
from scipy.stats import ks_2samp
reference_data = [...] # dados da amostra de treinamento
current_data = [...] # novos dados
statistic, p_value = ks_2samp(reference_data, current_data)
if p_value < 0.05:
print("Detecção de desvio de distribuição")
else:
print("Distribuições semelhantes")
Dessa forma, o monitoramento regular das distribuições usando o teste KS e o PSI ajuda a identificar oportunamente o desvio e tomar medidas (por exemplo, re-treinar o modelo).