একটি model evaluate করার জন্য simple train-validation split ব্যবহার করা যায়।

কিন্তু একটি single split-এর সমস্যা হলো:

Result depends on which observations
randomly went into validation.

একটি validation set accidentally:

Too easy

বা:

Too hard

হতে পারে।

Cross-Validation multiple splits ব্যবহার করে more reliable performance estimate দেয়।

K-Fold Cross-Validation

ধরুন আমরা:

5-Fold Cross-Validation

ব্যবহার করছি।

Dataset-কে 5টি roughly equal ভাগে divide করা হবে।

Fold 1
Fold 2
Fold 3
Fold 4
Fold 5

Round 1

Validation → Fold 1
Training   → Fold 2, 3, 4, 5

Round 2

Validation → Fold 2
Training   → Fold 1, 3, 4, 5

এভাবে প্রতিটি fold একবার validation হয়।

শেষে 5টি score পাওয়া যায়।

0.82
0.84
0.81
0.85
0.83

Average:

≈ 0.83

কেন ভালো?

প্রতিটি observation:

কিছু round-এ training-এ
এবং
একবার validation-এ

ব্যবহার হয়।

তাই available data efficiently use করা যায়।

Benefits

  • more stable evaluation

  • small dataset-এ useful

  • hyperparameter tuning

  • model comparison

  • single split-এর randomness কমায়

Stratified K-Fold

Classification problem-এ class imbalance থাকলে normal random K-Fold-এর কিছু fold-এ class distribution খারাপ হতে পারে।

তখন:

Stratified K-Fold

ব্যবহার করা হয়।

এটি প্রতিটি fold-এ class distribution approximately preserve করার চেষ্টা করে।

উদাহরণ:

Overall:
90% Normal
10% Fraud

Each Fold:
Approximately
90% Normal
10% Fraud

Grouped Data হলে?

ধরুন এক patient-এর multiple records আছে।

Random K-Fold করলে:

Patient A record 1 → Train
Patient A record 2 → Validation

হতে পারে।

এতে leakage হতে পারে।

তখন:

GroupKFold

বা group-aware splitting প্রয়োজন হতে পারে।

কিন্তু Time Series?

Time series বা temporal prediction-এ random K-Fold dangerous।

কারণ:

Future data
→ Training

Past data
→ Validation

হয়ে যেতে পারে।

এটি বাস্তব prediction scenario represent করে না।

Walk-Forward Validation

Time-aware evaluation:

Train Jan
→ Validate Feb

Train Jan–Feb
→ Validate Mar

Train Jan–Mar
→ Validate Apr

Train Jan–Apr
→ Validate May

এখানে সবসময়:

Past → Train
Future → Validation

থাকে।

Popular approach:

TimeSeriesSplit
Walk-forward Validation
Rolling Validation

Cross-Validation Test Set-এর Replacement নয়

Cross-validation model selection ও tuning-এর জন্য useful।

Final unbiased evaluation-এর জন্য আলাদা test set রাখা still useful।

Typical flow:

Train Data
↓
Cross-Validation
↓
Select Model / Hyperparameters
↓
Final Test Set Evaluation

Interview-ready Explanation

Cross-validation evaluates a model using multiple
train-validation splits instead of relying on a single split.

In K-Fold Cross-Validation, the data is divided into K folds,
and each fold is used once for validation while the remaining
folds are used for training.

The scores are then averaged to obtain a more stable estimate.

For imbalanced classification, Stratified K-Fold is often
used, while grouped data may require GroupKFold.

For time-series problems, random K-Fold should generally
be avoided because it can introduce future-to-past leakage.
Instead, time-aware methods such as walk-forward validation
or TimeSeriesSplit should be used.