Test dei modelli

Sviluppare modelli di Machine Learning per la produzione

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Fairness individuale vs di gruppo

Fairness individuale

Tratta in modo simile chi è simile.

  • Es.: offre opportunità di lavoro simili a chi ha esperienze simili.

Fairness di gruppo

Tratta i gruppi allo stesso modo.

  • Es.: non discriminare gruppi etnici nelle ammissioni scolastiche.
Sviluppare modelli di Machine Learning per la produzione

Holdout testing

  • L’holdout testing verifica l’affidabilità con un dataset separato
  • Valuta le prestazioni su dati non visti, come in training
  • Rileva problemi come overfitting o underfitting

robot che usano dati

Sviluppare modelli di Machine Learning per la produzione

Cercare il drift del modello

Drift di concetto

  • Cambio nella relazione tra feature e risposta
    • Es.: un algoritmo di sentiment analysis
      • I termini cambiano significato (dire "sick" può essere positivo)

Drift di previsione

  • Cambio nella distribuzione delle previsioni del modello
    • Es.: un guasto temporaneo aumenta l’intent "outage" nel tuo chatbot
    • Non c’è nulla di “sbagliato”, ma il drift può rallentare le risposte
Sviluppare modelli di Machine Learning per la produzione

Esempio: cercare il drift del modello

Setup:

# Import necessary libraries and split data
X_train, X_test, y_train, y_test = ...

Addestriamo il modello:

# Train a classifier on the training data
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# Calculate the accuracy on test data
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

Test del drift in seguito:

X_test_drift = X_test + 1.0  # Simulate data drift
# Calculate the accuracy on drifted data
y_pred_drift = clf.predict(X_test_drift)
accuracy_drift = accuracy_score(
    y_test, y_pred_drift)
print(f"Accuracy with drift: {accuracy_drift}")

# Drift detection threshold based on the accuracy
drift_threshold = accuracy * 0.9

# Check for drop in accuracy on the drifted data
if accuracy_drift < drift_threshold:
    print("Concept drift detected!")
else:
    print("No concept drift detected.")
Sviluppare modelli di Machine Learning per la produzione

Costo dei modelli complessi vs modelli baseline

  • I modelli complessi costano di più e possono ridurre l’efficienza
  • La latenza è il tempo per elaborare un input e dare una previsione
  • Il throughput è quante previsioni fa il modello in un dato tempo
  • Testa latenza e throughput per decidere quanta complessità serve
  • Obiettivo: bilanciare accuratezza ed efficienza
Sviluppare modelli di Machine Learning per la produzione

Passons à la pratique !

Sviluppare modelli di Machine Learning per la produzione

Preparing Video For Download...