Deriva de dados

Machine Learning de ponta a ponta

Joshua Stapleton

Machine Learning Engineer

A necessidade de detectar deriva de dados

Um gráfico mostrando a mudança na distribuição de doenças cardíacas por idade ao longo do tempo — hoje há menos casos e em idades mais avançadas

Machine Learning de ponta a ponta

Teste de Kolmogorov–Smirnov

  • Usado com frequência para detectar deriva de dados
  • Compara amostras para avaliar similaridade de distribuição

Dois gráficos mostrando a diferença entre a distribuição de um dataset de treino inicial e um dataset de inferência mais recente que sofreu deriva

Machine Learning de ponta a ponta

Usando a função ks_2samp()

  • A função ks_2samp() retorna: estatística de teste e p-valor.
  • Use o p-valor para aceitar/rejeitar a hipótese nula de similaridade de distribuição.
from scipy.stats import ks_2samp
# load the 1D data distribution samples for comparison
sample_1, sample_2 = training_dataset_sample, current_inference_sample
# perform the KS-test - ensure input samples are numpy arrays
test_statistic, p_value = ks_2samp(sample_1, sample_2)
if p_value < 0.05:
    print("Reject null hypothesis - data drift might be occuring")
else:
    print("Samples are likely to be from the same dataset")
Machine Learning de ponta a ponta

Corrigindo deriva de dados

Atualize o modelo para os novos dados

  • Re-treine o modelo
  • Reajuste/atualize os parâmetros

Poucos dados novos/de inferência?

  • Re-treine com dataset misto
  • Colete mais dados novos

Um fluxograma mostrando o processo de re-treinar e reimplantar um modelo com deriva de dados

Um diagrama mostrando como re-treinar periodicamente um modelo com quantidades crescentes de dados novos ao longo do tempo

Machine Learning de ponta a ponta

Recursos para detectar e corrigir deriva de dados

Machine Learning de ponta a ponta

Vamos praticar!

Machine Learning de ponta a ponta

Preparing Video For Download...