একটি 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.