Modellen testen

Machine Learning-modellen ontwikkelen voor productie

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Individuele vs. groepsfairness

Individuele fairness

Behandel vergelijkbare individuen vergelijkbaar.

  • Bijv. geef soortgelijke baan­kansen aan mensen met vergelijkbare ervaring.

Groepsfairness

Behandel groepen gelijk.

  • Bijv. discrimineer niet tegen bepaalde etnische groepen bij toelating tot school.
Machine Learning-modellen ontwikkelen voor productie

Holdout-testing

  • Holdout-testing checkt modelbetrouwbaarheid met een aparte dataset
  • Beoordeelt prestaties op ongetrainde data, net als tijdens training
  • Vindt issues zoals overfitting of underfitting

robots gebruiken data

Machine Learning-modellen ontwikkelen voor productie

Modeldrift opsporen

Concept drift

  • Een verschuiving in de relatie tussen features en respons
    • Bijv. bij sentimentanalyse
      • Termen kunnen van betekenis veranderen (iets "sick" noemen is positief)

Prediction drift

  • Een verschuiving in de voorspellingsverdeling van een model
    • Bijv. een tijdelijke storing verhoogt de "outage"-intentie van je chatbot
    • Er is niets echt "mis", maar deze drift kan reacties vertragen
Machine Learning-modellen ontwikkelen voor productie

Voorbeeld: modeldrift opsporen

Setup:

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

Ons model fitten:

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

Later op drift testen:

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.")
Machine Learning-modellen ontwikkelen voor productie

Kosten: complexe vs. basismodellen

  • Complexe modellen zijn duurder en kunnen de efficiëntie beïnvloeden
  • Latentie is de tijd om één input te verwerken en een voorspelling te geven
  • Throughput is het aantal voorspellingen per tijdseenheid
  • Test latentie en throughput om de juiste modelcomplexiteit te bepalen
  • Doel: balans tussen nauwkeurigheid en efficiëntie
Machine Learning-modellen ontwikkelen voor productie

Laten we oefenen!

Machine Learning-modellen ontwikkelen voor productie

Preparing Video For Download...