Testowanie modeli

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Sprawiedliwość indywidualna a grupowa

Sprawiedliwość indywidualna

Traktuj podobne osoby w podobny sposób.

  • Np. oferuj podobne możliwości zatrudnienia osobom z podobnym doświadczeniem.

Sprawiedliwość grupowa

Traktuj różne grupy równo.

  • Np. nie dyskryminuj osób określonej rasy lub grupy etnicznej w modelach rekrutacji na uczelnie.
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Testowanie holdout

  • Testowanie holdout sprawdza niezawodność modelu na osobnym zbiorze danych
  • Ocenia wydajność na danych, na których model nie był trenowany
  • Wykrywa problemy takie jak nadmierne lub niedostateczne dopasowanie

roboty korzystające z danych

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Wykrywanie dryftu modelu

Dryf konceptualny

  • Zmiana zależności między cechami a zmienną odpowiedzi
    • Np. algorytm analizy sentymentu
      • Znaczenie słów może się zmieniać (słowo „chory" może oznaczać coś dobrego)

Dryf predykcji

  • Zmiana rozkładu predykcji modelu
    • Np. tymczasowa awaria powoduje wzrost intencji „awaria" w chatbocie
    • Nic nie jest „nie tak", ale taki dryf może wydłużyć czas odpowiedzi dla użytkowników
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Przykład wykrywania dryftu modelu

Konfiguracja:

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

Dopasowanie modelu:

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

Testowanie dryftu po czasie:

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.")
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Koszt modeli złożonych a modeli bazowych

  • Złożone modele są kosztowniejsze i mogą obniżać wydajność
  • Latencja mierzy czas przetworzenia pojedynczego wejścia i wygenerowania predykcji
  • Przepustowość mierzy liczbę predykcji generowanych przez model w danym czasie
  • Testuj latencję i przepustowość, aby określić optymalną złożoność modelu
  • Celem jest równowaga między dokładnością a wydajnością
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Czas na ćwiczenia!

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Preparing Video For Download...