Data Science Steps to Follow - 06

Validation Strategy and Model Evaluation

Learn about different validation strategies and how to properly evaluate your models
data-science
machine-learning
validation
Author

Hasan Goni

Published

November 22, 2022

Modified

August 3, 2026

1 Series Navigation

NoteData Science Steps Series

This is Part 6 of a 6-part series on data science fundamentals:

  1. Part 1: EDA Fundamentals
  2. Part 2: Feature Preprocessing and Generation
  3. Part 3: Handling Anonymized Data
  4. Part 4: Text Feature Extraction
  5. Part 5: Image Feature Extraction
  6. Part 6: Advanced Techniques (You are here)

2 Validation Strategy and Model Evaluation

This post covers essential validation strategies and model evaluation techniques in data science. We’ll explore different approaches to ensure your models generalize well to unseen data.

2.1 Validation Strategies

2.1.1 Holdout Validation

The simplest form of validation where we split our data into training and validation sets:

flowchart TB
    A[data] --> B[Validation data]
    A[data] --> C[Training data]

This approach is good when: - You have sufficient data - The data distribution is relatively uniform - Time-based dependencies are not critical

2.1.2 K-Fold Cross Validation

A more robust approach that uses multiple training-validation splits:

flowchart TB
    A[data] --> B[Fold 1]
    B[Fold 1] --> C[Training data]
    B[Fold 1] --> D[Validation data]

    A[data] --> E[Fold 2]
    E[Fold 2] --> F[Training data]
    E[Fold 2] --> G[Validation data]

    A[data] --> H[Fold 3]
    H[Fold 3] --> I[Training data]
    H[Fold 3] --> J[Validation data]

    C(Training data) --> K[Average]
    D(Training data) --> K[Average]
    F(Training data) --> K[Average]
    G(Training data) --> K[Average]
    I(Training data) --> K[Average]
    J(Training data) --> K[Average]

    K(Average) --> L[Final model performance]

2.1.3 Leave-One-Out Validation

Best for very small datasets where we need to maximize training data usage.

2.2 Common Validation Problems

2.2.1 1. Data Leakage

  • Target leakage
  • Train-test contamination
  • Feature leakage

2.2.2 2. Distribution Mismatch

  • Training data not representative
  • Temporal dependencies
  • Concept drift

2.2.3 3. Sample Size Issues

  • Too little validation data
  • Imbalanced splits
  • High variance in metrics

2.3 Best Practices

  1. Always use stratification for:
    • Small datasets
    • Imbalanced classes
    • Multi-class problems
  2. Consider temporal aspects:
    • Time-based splits for time series
    • Rolling window validation
    • Forward-chaining
  3. Monitor multiple metrics:
    • Accuracy/RMSE
    • ROC-AUC
    • Precision-Recall
    • Business metrics

2.4 Implementation Examples

Here’s how to implement different validation strategies using scikit-learn:

from sklearn.model_selection import (
    train_test_split,
    KFold,
    StratifiedKFold,
    LeaveOneOut
)

# Simple holdout
X_train, X_val, y_train, y_val = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# K-Fold CV
kf = KFold(n_splits=5, shuffle=True, random_state=42)
for train_idx, val_idx in kf.split(X):
    X_train, X_val = X[train_idx], X[val_idx]
    y_train, y_val = y[train_idx], y[val_idx]

# Stratified K-Fold
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
for train_idx, val_idx in skf.split(X, y):
    X_train, X_val = X[train_idx], X[val_idx]
    y_train, y_val = y[train_idx], y[val_idx]

2.5 Next Steps

Now that you understand validation strategies, you can: 1. Choose appropriate validation methods for your data 2. Implement robust validation pipelines 3. Avoid common pitfalls in model evaluation

2.6 References

  1. Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning
  2. Raschka, S. (2018). Model Evaluation, Model Selection, and Algorithm Selection in Machine Learning
  3. Kohavi, R. (1995). A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection

Reuse

Citation

BibTeX citation:
@online{goni2022,
  author = {Goni, Hasan},
  title = {Data {Science} {Steps} to {Follow} - 06},
  date = {2022-11-22},
  langid = {en}
}
For attribution, please cite this work as:
Goni, Hasan. 2022. “Data Science Steps to Follow - 06.” November 22.
Free email course · 7 days

Industrial Vision Foundations

AI can write the code, but someone still has to know which method fits a real inspection line. One short lesson a day for 7 days on the classical computer vision techniques that still run production systems.

Runnable code in every lesson. No spam, unsubscribe any time.

Questions, corrections or feedback?

Found a mistake, or want a topic covered next? Leave a comment below (sign in with GitHub), or write to hasanme1412@gmail.com. I read everything.