Data testen

Machine Learning-modellen ontwikkelen voor productie

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Datavalidatie- en schematests

  • Datavalidatietests zoeken naar missende waarden, inconsistenties en abnormale data
    • Bijv. uitschieters detecteren
  • Schemavertests controleren verwachte dataformaten en datatypes

    • Bijv. zorg dat "time to value" een integer in seconden is en niet in minuten
  • Tools zoals Great Expectations automatiseren dit proces

logo van Great Expectations

Machine Learning-modellen ontwikkelen voor productie

Verder dan simpel testen

  • Data- en schematests checken basisproblemen
  • Complexere tests zoals expectation tests zoeken naar complexere issues
    • Controleren of waarden binnen een bereik vallen
    • Controleren op bekende patronen/trends
Machine Learning-modellen ontwikkelen voor productie

Expectation tests

  • Een type datavalidatietest
  • Zorgt dat data voldoet aan bepaalde "verwachtingen" gedefinieerd door gebruiker of systeem
    • Bijv. verwachtte tijd op website rond 4 minuten met een standaarddeviatie van 1 minuut
    • Bijv. verwacht datums van eerdere patiëntbezoeken vóór de huidige tijd liggen
Machine Learning-modellen ontwikkelen voor productie

Feature-importance-tests

  • Feature-importance-tests bepalen de belangrijkste features in een ML-model
  • Voorbeeld: Permutation importance
    • Permuteer featurewaarden willekeurig en meet hoeveel de modelprestatie daalt

staafdiagram

Machine Learning-modellen ontwikkelen voor productie

Voorbeeld van 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)

Onze permutation-importance-test uitvoeren:

# 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]}')
Machine Learning-modellen ontwikkelen voor productie

Zoek naar datadrift

Datadrift

  • Ook wel feature drift genoemd
  • Een verandering in de verdeling van inputdata voor een model
  • Bijv. meer mensen gebruiken een nieuwe term voor een nieuw product en de chatbot weet niet wat ermee te doen

Labeldrift

  • Een verandering in de labelverdeling
  • Bijv. minder mensen vragen om retouren; meer vragen naar de status van hun retour
Machine Learning-modellen ontwikkelen voor productie

Laten we oefenen!

Machine Learning-modellen ontwikkelen voor productie

Preparing Video For Download...