Test dei dati

Sviluppare modelli di Machine Learning per la produzione

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Test di validazione e di schema

  • I test di validazione dei dati cercano valori mancanti, incoerenze e dati anomali
    • Es.: rilevare outlier
  • I test di schema verificano formati e tipi di dato attesi

    • Es.: assicurarsi che "time to value" sia un intero in secondi e non in minuti
  • Strumenti come Great Expectations aiutano ad automatizzare il processo

logo di Great Expectations

Sviluppare modelli di Machine Learning per la produzione

Oltre i test semplici

  • I test su dati e schema controllano problemi di base
  • Test più avanzati come gli expectation test cercano problemi più complessi
    • Verificare se i valori sono in un certo intervallo
    • Verificare pattern/tendenze note
Sviluppare modelli di Machine Learning per la produzione

Expectation test

  • Un tipo di test di validazione dei dati
  • Assicurano che i dati rispettino "aspettative" definite da utente o sistema
    • Es.: tempo sul sito ~4 minuti con deviazione standard di 1 minuto
    • Es.: le date delle visite passate di un paziente devono essere prima dell'ora corrente
Sviluppare modelli di Machine Learning per la produzione

Test di importanza delle feature

  • I test di importanza delle feature identificano le feature più importanti in un modello ML
  • Esempio: Permutation importance
    • Permuta casualmente i valori delle feature e misura quanto cala la performance del modello

grafico a barre

Sviluppare modelli di Machine Learning per la produzione

Esempio di permutation importance

Setup:

import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.inspection import permutation_importance
# Train a random forest classifier (assuming we have some data)
model = RandomForestClassifier().fit(X_train, y_train)

Esecuzione del test di permutation importance:

# Calculate feature importances using permutation importance
results = permutation_importance(model, X_test, y_test, n_repeats=10, random_state=42)
# Print the feature importances
feature_names = ['feature_1', 'feature_2', 'feature_3', ...]
importances = results.importances_mean
for i in range(len(feature_names)):
    print(f'{feature_names[i]}: {importances[i]}')
Sviluppare modelli di Machine Learning per la produzione

Rilevare il data drift

Data drift

  • A volte chiamato feature drift
  • Un cambiamento nella distribuzione dei dati di input del modello
  • Es.: più persone usano un nuovo termine per un nuovo prodotto e il chatbot non capisce

Label drift

  • Un cambiamento nella distribuzione delle etichette
  • Es.: meno richieste di reso e più richieste sullo stato del reso
Sviluppare modelli di Machine Learning per la produzione

Facciamo pratica!

Sviluppare modelli di Machine Learning per la produzione

Preparing Video For Download...