Tester les modèles

Développer des modèles de Machine Learning pour la production

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Équité individuelle vs équité de groupe

Équité individuelle

Traiter de manière similaire des individus semblables.

  • Ex. Offrir des opportunités d'emploi comparables à des profils d'expérience similaires.

Équité de groupe

Traiter équitablement les différents groupes.

  • Ex. Ne pas discriminer des personnes de certains groupes raciaux ou ethniques dans les modèles d'admission scolaire.
Développer des modèles de Machine Learning pour la production

Test holdout

  • Le test holdout vérifie la fiabilité du modèle avec un jeu de données séparé
  • Évalue les performances sur des données non vues, comme à l'entraînement
  • Détecte le surapprentissage ou le sous-apprentissage

robots using data

Développer des modèles de Machine Learning pour la production

Repérer la dérive du modèle

Dérive de concept

  • Changement de la relation entre les variables explicatives et la réponse
    • Ex. un algorithme d'analyse de sentiments
      • Les termes peuvent changer de sens (dire qu'un élément est « sick » veut dire « génial »)

Dérive de prédiction

  • Changement de la distribution des prédictions du modèle
    • Ex. une panne temporaire augmente l'intention « outage » de votre chatbot
    • Rien n'est « incorrect » en soi, mais cette dérive peut ralentir les réponses aux utilisateurs
Développer des modèles de Machine Learning pour la production

Exemple : recherche de dérive de modèle

Setup:

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

Fitting our model:

# 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}")

Testing for drift later:

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.")
Développer des modèles de Machine Learning pour la production

Coût des modèles complexes vs modèles de base

  • Les modèles complexes coûtent plus cher et peuvent réduire l'efficacité
  • La latence mesure le temps pour traiter une entrée et produire une prédiction
  • Le débit mesure le nombre de prédictions générées par unité de temps
  • Testez latence et débit pour définir la complexité adéquate du modèle
  • Objectif : équilibrer précision et efficacité
Développer des modèles de Machine Learning pour la production

Passons à la pratique !

Développer des modèles de Machine Learning pour la production

Preparing Video For Download...