Kiểm thử dữ liệu

Phát triển mô hình Machine Learning cho môi trường sản xuất

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Kiểm thử xác thực dữ liệu và schema

  • Kiểm thử xác thực dữ liệu tìm giá trị thiếu, không nhất quán, dữ liệu bất thường
    • Ví dụ: phát hiện ngoại lệ
  • Kiểm thử schema kiểm tra định dạng và kiểu dữ liệu mong đợi

    • Ví dụ: đảm bảo "time to value" là số nguyên tính bằng giây, không phải phút
  • Công cụ như Great Expectations giúp tự động hóa quy trình này

logo great expectations

Phát triển mô hình Machine Learning cho môi trường sản xuất

Vượt ngoài kiểm thử đơn giản

  • Kiểm thử dữ liệu và schema kiểm tra các lỗi cơ bản
  • Các kiểm thử phức tạp hơn như expectation tests phát hiện vấn đề nâng cao
    • Kiểm tra giá trị trong một khoảng nhất định
    • Kiểm tra mẫu/hướng xu thế đã biết
Phát triển mô hình Machine Learning cho môi trường sản xuất

Expectation tests

  • Một dạng kiểm thử xác thực dữ liệu
  • Đảm bảo dữ liệu khớp các "kỳ vọng" do người dùng hoặc hệ thống đặt ra
    • Ví dụ: kỳ vọng thời gian trên website khoảng 4 phút, độ lệch chuẩn 1 phút
    • Ví dụ: kỳ vọng ngày khám trước của bệnh nhân phải trước thời điểm hiện tại
Phát triển mô hình Machine Learning cho môi trường sản xuất

Kiểm thử tầm quan trọng đặc trưng

  • Kiểm thử tầm quan trọng đặc trưng xác định đặc trưng quan trọng nhất trong mô hình ML
  • Ví dụ: Permutation importance
    • Hoán vị ngẫu nhiên giá trị đặc trưng và đo mức giảm hiệu năng mô hình

biểu đồ cột

Phát triển mô hình Machine Learning cho môi trường sản xuất

Ví dụ về permutation importance

Thiết lập:

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)

Chạy kiểm thử 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]}')
Phát triển mô hình Machine Learning cho môi trường sản xuất

Phát hiện data drift

Data drift

  • Còn gọi là feature drift
  • Thay đổi phân phối dữ liệu đầu vào của mô hình
  • Ví dụ: nhiều người dùng thuật ngữ mới cho sản phẩm mới khiến chatbot bối rối

Label drift

  • Thay đổi phân phối nhãn
  • Ví dụ: giảm yêu cầu hoàn trả, tăng hỏi về trạng thái hoàn trả
Phát triển mô hình Machine Learning cho môi trường sản xuất

Ayo berlatih!

Phát triển mô hình Machine Learning cho môi trường sản xuất

Preparing Video For Download...