Testování dat

Developing Machine Learning Models for Production

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Validace dat a testy schématu

  • Testy validace dat hledají chybějící hodnoty, nekonzistence a anomálie
    • Např. detekce odlehlých hodnot
  • Testy schématu kontrolují očekávané formáty a datové typy

    • Např. že „time to value" je celé číslo v sekundách, nikoli minutách
  • Nástroje jako Great Expectations tento proces automatizují

logo Great Expectations

Developing Machine Learning Models for Production

Nad rámec jednoduchého testování

  • Testy dat a schématu odhalují základní problémy
  • Složitější testy očekávání odhalují komplexnější problémy
    • Kontrola, zda hodnoty leží v určitém rozsahu
    • Kontrola známých vzorů a trendů
Developing Machine Learning Models for Production

Testy očekávání

  • Typ testu validace dat
  • Ověřuje, zda data splňují definovaná „očekávání"
    • Např. čas strávený na webu by měl být přibližně 4 minuty se směrodatnou odchylkou 1 minuta
    • Např. data předchozích návštěv pacienta musí být v minulosti
Developing Machine Learning Models for Production

Testy důležitosti příznaků

  • Testy důležitosti příznaků identifikují nejvýznamnější příznaky v ML modelu
  • Příklad: Permutation importance
    • Náhodně permutuje hodnoty příznaků a měří pokles výkonu modelu

sloupcový graf

Developing Machine Learning Models for Production

Příklad permutation importance

Nastavení:

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)

Spuštění testu permutation importance:

# 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]}')
Developing Machine Learning Models for Production

Hledání datového driftu

Datový drift

  • Někdy označovaný jako feature drift
  • Změna v distribuci vstupních dat modelu
  • Např. uživatelé začnou používat nový výraz pro nový produkt a chatbot si s tím neví rady

Drift labelů

  • Změna v distribuci labelů
  • Např. zákazníci přestanou žádat o vrácení zboží a začnou se ptát na stav svých objednávek
Developing Machine Learning Models for Production

Pojďme si procvičit!

Developing Machine Learning Models for Production

Preparing Video For Download...