Testarea modelelor

Dezvoltarea modelelor de Machine Learning pentru producție

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Echitate individuală vs. de grup

Echitate individuală

Tratați indivizii similari în mod similar.

  • Ex. Oferiți oportunități de angajare similare persoanelor cu experiențe similare.

Echitate de grup

Tratați diferite grupuri în mod egal.

  • Ex. Nu discriminați persoanele din anumite grupuri rasiale sau etnice în modelele de admitere școlară.
Dezvoltarea modelelor de Machine Learning pentru producție

Testarea holdout

  • Testarea holdout verifică fiabilitatea modelului folosind un set de date separat
  • Evaluează performanța pe date nevăzute, similar cu momentul antrenării
  • Detectează probleme precum supraajustarea sau subajustarea

roboți care utilizează date

Dezvoltarea modelelor de Machine Learning pentru producție

Identificarea derivei modelului

Deriva conceptuală

  • O schimbare în relația dintre caracteristici și răspuns
    • Ex. un algoritm de analiză a sentimentelor
      • Termenii pot căpăta noi sensuri (a spune că ceva este „sick" poate fi pozitiv)

Deriva predicțiilor

  • O schimbare în distribuția predicțiilor unui model
    • Ex. o întrerupere temporară crește frecvența intenției „outage" pentru chatbot
    • Nu există nimic „greșit" în sine, dar această derivă poate încetini răspunsurile pentru utilizatori
Dezvoltarea modelelor de Machine Learning pentru producție

Exemplu de identificare a derivei modelului

Configurare:

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

Antrenarea modelului:

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

Testarea derivei ulterior:

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.")
Dezvoltarea modelelor de Machine Learning pentru producție

Costul modelelor complexe vs. modelele de bază

  • Modelele complexe sunt mai costisitoare și pot afecta eficiența
  • Latența măsoară timpul de procesare a unei intrări și de generare a unei predicții
  • Debitul măsoară numărul de predicții pe care un model le poate face într-un interval de timp
  • Testați latența și debitul pentru a determina complexitatea optimă a modelului
  • Scopul este un echilibru între acuratețe și eficiență
Dezvoltarea modelelor de Machine Learning pentru producție

Let's practice!

Dezvoltarea modelelor de Machine Learning pentru producție

Preparing Video For Download...