Betrouwbaarheid van modellen

Machine Learning-modellen ontwikkelen voor productie

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

ML-modellen afstemmen op businessimpact-metrics

  • Businessimpact-metrics meten de impact van ML op het bedrijf
    • bv. omzet, kostenbesparing, klanttevredenheid (CSAT)
  • Moeten aansluiten op modelmetrics
    • bv. churn-voorspeller --> omzet
    • bv. onderhoudsvoorspeller in productie --> kostenbesparing
    • bv. nauwkeurigheid intentieherkenning chatbot --> CSAT

grafiek die stijgt

Machine Learning-modellen ontwikkelen voor productie

Testprocessen in ML-pipelines

  • Unittests testen losse componenten
    • bv. controleren dat een PCA-instantie het verwachte aantal features teruggeeft
  • Integratietests bekijken de hele pipeline
    • bv. input juist gepreprocessed, model voorspelt goed, output juist postprocessed
  • Smoke tests zijn snelle checks die vertrouwen geven
    • bv. model classificeert een kleine set voorbeeldafbeeldingen correct
  • Test vroeg en vaak
    • bv. test op nieuwe data zodra die beschikbaar is
Machine Learning-modellen ontwikkelen voor productie

Voorbeeld unittest

def test_pipeline():
    # Generate mock data for testing
    X_train = pd.DataFrame({'age': [25, 30, 35, 40], 'income': [50000, 60000, 70000, 80000])
    y_train = pd.Series([0, 0, 1, 1])

    pipeline = Pipeline([('preprocessing', DataPreprocessor()),  # Set up pipeline
                         ('model', LogisticRegression())])
    pipeline.fit(X_train, y_train)  # Fit pipeline on training data

    # Generate mock data for testing
    X_test = pd.DataFrame({'age': [30, 35, 40, 45], 'income': [55000, 65000, 75000, 85000])
    y_test = pd.Series([0, 0, 1, 1])
    y_pred = pipeline.predict(X_test)  
    accuracy = accuracy_score(y_test, y_pred)  # Evaluate pipeline on test data

    assert accuracy > 0.8, "Error: pipeline accuracy is too low."
Machine Learning-modellen ontwikkelen voor productie

Modelveroudering monitoren

  • Modelveroudering: prestaties dalen in de tijd
    • door verandering in data of omgeving
  • Continu monitoren!

verwarde robot

Machine Learning-modellen ontwikkelen voor productie

Modelveroudering: signaleren en aanpakken

Identificeren

  • Modelprestaties monitoren
  • Veranderingen in data en omgeving volgen

Aanpakken

  • Model hertrainen op nieuwe data
    • bv. nieuwe feature toevoegen aan het model
  • Datapipeline updaten voor omgevingswijzigingen
    • bv. wijzigingen in analyticsplatforms verstoren je pipeline
Machine Learning-modellen ontwikkelen voor productie

Laten we oefenen!

Machine Learning-modellen ontwikkelen voor productie

Preparing Video For Download...