شجرة القرار
- بيانات سلاسل زمنية؟ ← TimeSeriesSplit (لا تخلط الزمن أبداً!)
- مجموعات يجب أن تبقى معاً؟ ← GroupKFold
- فئات غير متوازنة؟ ← StratifiedKFold
- جدولي افتراضي ← StratifiedKFold بخمس طيات
مثال TimeSeriesSplit
from sklearn.model_selection import TimeSeriesSplit
tscv = TimeSeriesSplit(n_splits=5)
for train_idx, val_idx in tscv.split(X):
X_train, X_val = X.iloc[train_idx], X.iloc[val_idx]
GroupKFold: منع التسرب
إذا كان لديك معرّفات مستخدمين أو مرضى أو متاجر — استخدم GroupKFold دائماً حتى لا يظهر الكيان نفسه في التدريب والتحقق معاً.