Menguji model

Mengembangkan Model Machine Learning untuk Produksi

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Keadilan individual vs kelompok

Keadilan individual

Perlakukan individu serupa dengan cara yang sama.

  • Mis.: beri peluang kerja serupa pada individu dengan pengalaman serupa.

Keadilan kelompok

Perlakukan kelompok berbeda secara setara.

  • Mis.: jangan mendiskriminasi kelompok ras atau etnis tertentu dalam model penerimaan sekolah.
Mengembangkan Model Machine Learning untuk Produksi

Holdout testing

  • Holdout testing memeriksa keandalan model dengan dataset terpisah
  • Menilai kinerja pada data yang tidak dilatih, mirip saat pelatihan
  • Mendeteksi masalah seperti overfitting atau underfitting

robot menggunakan data

Mengembangkan Model Machine Learning untuk Produksi

Mendeteksi drift model

Concept drift

  • Pergeseran hubungan antara fitur dan respons
    • Mis.: algoritme analisis sentimen
      • Istilah dapat bergeser makna (menyebut sesuatu "sakit" berarti bagus)

Prediction drift

  • Pergeseran distribusi prediksi model
    • Mis.: gangguan sementara menaikkan intent "outage" pada chatbot Anda
    • Tidak ada yang benar-benar “salah”, tetapi drift ini bisa memperlambat respons pengguna
Mengembangkan Model Machine Learning untuk Produksi

Contoh mendeteksi drift model

Setup:

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

Melatih model:

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

Pengujian drift selanjutnya:

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.")
Mengembangkan Model Machine Learning untuk Produksi

Biaya model kompleks vs model dasar

  • Model kompleks lebih mahal dan dapat menurunkan efisiensi
  • Latensi mengukur waktu memproses satu input hingga prediksi
  • Throughput mengukur jumlah prediksi per satuan waktu
  • Uji latensi dan throughput untuk menentukan tingkat kompleksitas model
  • Tujuan: seimbang antara akurasi dan efisiensi
Mengembangkan Model Machine Learning untuk Produksi

Ayo berlatih!

Mengembangkan Model Machine Learning untuk Produksi

Preparing Video For Download...