Menguji data

Mengembangkan Model Machine Learning untuk Produksi

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Uji validasi data dan skema

  • Uji validasi data mencari nilai hilang, inkonsistensi, dan data tidak normal
    • Mis. mendeteksi outlier
  • Uji skema memeriksa format dan tipe data yang diharapkan

    • Mis. pastikan "time to value" bertipe integer mengukur detik, bukan menit
  • Alat seperti Great Expectations membantu otomatisasi proses ini

logo great expectations

Mengembangkan Model Machine Learning untuk Produksi

Melampaui pengujian sederhana

  • Uji data dan skema memeriksa masalah dasar
  • Uji lebih lanjut seperti expectation tests mendeteksi masalah lebih kompleks
    • Memeriksa apakah nilai dalam rentang tertentu
    • Memeriksa pola/tren yang dikenal
Mengembangkan Model Machine Learning untuk Produksi

Expectation tests

  • Jenis uji validasi data
  • Memastikan data sesuai "ekspektasi" yang ditetapkan pengguna atau sistem
    • Mis. ekspektasi waktu di situs ~4 menit dengan simpangan baku 1 menit
    • Mis. ekspektasi tanggal kunjungan pasien di masa lalu sebelum waktu sekarang
Mengembangkan Model Machine Learning untuk Produksi

Uji pentingnya fitur

  • Uji pentingnya fitur mengidentifikasi fitur paling berpengaruh dalam model ML
  • Contoh: Permutation importance
    • Mengacak nilai fitur secara acak dan mengukur seberapa turun kinerja model

bagan batang

Mengembangkan Model Machine Learning untuk Produksi

Contoh permutation importance

Penyiapan:

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)

Menjalankan uji 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]}')
Mengembangkan Model Machine Learning untuk Produksi

Mencari data drift

Data drift

  • Juga disebut feature drift
  • Perubahan distribusi data masukan model
  • Mis. makin banyak orang memakai istilah baru untuk produk baru sehingga chatbot kebingungan

Label drift

  • Perubahan distribusi label
  • Mis. pergeseran dari permintaan pengembalian ke pertanyaan status pengembalian
Mengembangkan Model Machine Learning untuk Produksi

Ayo berlatih!

Mengembangkan Model Machine Learning untuk Produksi

Preparing Video For Download...