الفصل 2: اكتشاف انحراف البيانات
أنواع الانحراف
| النوع | الوصف | الاكتشاف |
|---|---|---|
| انحراف التغاير | تغييرات في توزيع بيانات الإدخال | اختبارات إحصائية على الميزات |
| انحراف المفهوم | تغييرات في العلاقة بين X و Y | مراقبة دقة التنبؤ |
| انحراف التسمية | تغييرات في توزيع الهدف | مقارنة توزيعات التنبؤ |
الاختبارات الإحصائية للانحراف
from scipy import stats
import numpy as np
def detect_drift(reference_data: np.ndarray, current_data: np.ndarray, threshold: float = 0.05):
"""Detect drift using Kolmogorov-Smirnov test."""
drift_results = {}
for i, feature in enumerate(feature_names):
statistic, p_value = stats.ks_2samp(
reference_data[:, i],
current_data[:, i]
)
drift_results[feature] = {
'statistic': statistic,
'p_value': p_value,
'drift_detected': p_value < threshold
}
return drift_results
لوحة مراقبة الانحراف
# Grafana dashboard config
panels:
- title: "درجة انحراف الميزة"
type: timeseries
targets:
- expr: model_drift_score{feature="age"}
- expr: model_drift_score{feature="income"}
thresholds:
- value: 0.1
color: yellow
- value: 0.2
color: red