Cross-Validation روشی برای برآورد توان تعمیم مدل است که داده‌ها را به چند بخش (Fold) تقسیم می‌کند. در اعتبارسنجی متقابل K-Fold، مدل در هر نوبت روی K−1 بخش آموزش می‌بیند و روی بخش باقی‌مانده ارزیابی می‌شود، این فرایند تا استفاده از همه بخش‌ها به‌عنوان داده ارزیابی تکرار می‌شود.

میانگین نتایج نوبت‌ها دید باثبات‌تری از عملکرد مدل می‌دهد. پیش‌پردازش باید درون هر Fold و فقط با داده آموزش همان نوبت انجام شود تا نشت اطلاعات رخ ندهد.

فرض کنید فقط ۱۰۰۰ نمونه برای آموزش دارید. در K-Fold با پنج بخش، هر بار مدل روی چهار بخش آموزش می‌بیند و روی بخش پنجم ارزیابی می‌شود. میانگین پنج نتیجه تصویری بهتر از تکیه بر یک تقسیم تصادفی می‌دهد.

نمونه کوتاه

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
scores = cross_val_score(LogisticRegression(), X, y, cv=5)
print(scores.mean())