Bias vs. Variance: Why Your ML Model Can’t Have It All

3 min read

For years, every time I fixed one problem with my models, I created another one. Make the model more sophisticated to capture complex patterns? It performs terribly on new data. Simplify it to work better on new examples? Now it’s missing obvious relationships in the training data.

If that sounds familiar, you’re experiencing the bias-variance tradeoff. This post is the final entry in our Mental Models for ML series, building on Supervised vs. Unsupervised Learning, Classification vs. Regression, Prediction vs. Inference, and Training vs. Testing.

Think Basketball

Picture learning to shoot a basketball. There are exactly two ways you can consistently miss:

Option 1: You systematically shoot too far to the left every single time. Your technique has a consistent flaw.

Option 2: You’re all over the place. Sometimes left, sometimes right, sometimes you nail it, sometimes you’re way off.

That’s the tradeoff. Replace “shooting baskets” with “making predictions,” and you’ve got the fundamental challenge every ML model faces.

Bias = systematic errors (always shooting left). Variance = inconsistent performance (shooting everywhere).

And the frustrating part is that fixing one usually makes the other worse.

Bias: When Models Miss the Mark

High bias means your model is too simplistic to capture what’s actually going on.

I learned this working with a healthcare provider trying to predict patient readmissions. Our first model used only age and previous visits. Didn’t matter how much data we threw at it, the thing consistently underestimated risk for patients with complex conditions. It was basically saying “older patients with more visits are more likely to return” and calling it a day. True, but useless.

Signs you have high bias:

  • Poor performance on training data (it can’t even learn the examples you gave it)
  • Training and test performance are similarly bad
  • Adding more data doesn’t help
  • The model makes the same types of errors over and over

Think of a high-bias model as that person who rates every movie three stars. Technically not wrong about most of them, but you’d never trust their recommendations.

Variance: When Models Chase Noise

High variance is the opposite. Your model is so flexible that it memorizes the training data instead of learning general patterns.

I worked with a retail company whose data science team built a complex customer churn model. 93% accuracy on training data. We were thrilled. Then we tested it on new data and accuracy dropped to 71%.

The model had memorized everything about that specific dataset, including random fluctuations that had nothing to do with actual customer behavior. It was useless for predicting anything new.

Signs you have high variance:

  • Excellent performance on training data
  • Much worse performance on test data
  • Performance changes dramatically with small changes to training data
  • Adding more data actually helps

You Can’t Win Both

Simple models have high bias and low variance (consistent but often wrong). Complex models have low bias and high variance (they can capture complex patterns but might just be memorizing noise).

The goal isn’t to eliminate both. That’s impossible. The goal is finding the sweet spot for your specific problem.

Diagnosing the Problem

The good news is it’s usually obvious which problem you have once you know what to look for.

You probably have high bias if your model performs poorly on training data and adding more data doesn’t help. You need a more complex model or better features.

You probably have high variance if training performance is great but test performance is bad. You need to simplify, add regularization, or get more training data.

Plotting learning curves makes this very clear. High bias shows as flat lines that don’t improve. High variance shows as a big gap between training and test performance that shrinks as you add data.

Fixing It

For high bias (model too simple): Use a more complex algorithm. Add more features that capture important patterns. Reduce regularization. Try ensemble methods.

For high variance (model too complex): Simplify the model. Remove features that don’t add value. Add regularization. Get more training data. Use ensemble methods that average out errors.

The key is making one change at a time and measuring the impact. I’ve watched teams panic and change five things at once, then have no idea which change helped or hurt.

Mistakes I’ve Made

Misdiagnosing the problem. Adding more features to a high-variance model is like giving more coffee to someone who’s already jittery. It makes everything worse.

Only looking at overall accuracy. I once spent weeks trying to improve a model’s accuracy, only to realize it was performing great on easy examples and terribly on hard ones. Looking at error patterns across different data segments tells you way more than a single number.

Assuming more data always helps. More data helps with variance but rarely fixes bias. If your model is fundamentally too simple, showing it more examples of the same patterns won’t make it smarter.

Forgetting about data quality. Sometimes what looks like a model problem is actually a data problem. I once debugged what seemed like high variance for days, only to discover that sensors had been recalibrated midway through data collection. The model was correctly learning patterns that didn’t actually exist in the real world.

My Framework

Here’s what actually works for me:

  1. Start with the simplest model that makes sense for your problem
  2. Track both training and test performance carefully
  3. Figure out whether bias or variance is your main issue
  4. Make one targeted change based on your diagnosis
  5. Measure again and repeat

This saved me on a recent predictive maintenance project. Started with simple logistic regression, maintained strict train/test separation, identified high bias, added better features capturing equipment vibration patterns, and improved performance through controlled iterations. Final system: 93% accuracy predicting failures 24-48 hours in advance.

Completing the Toolkit

Every machine learning model is a compromise between too simple and too complex. You don’t solve it once. You manage it every time.

These five mental models give you a complete framework for approaching any ML challenge:

  1. What kind of learning? (Supervised/Unsupervised)
  2. What kind of output? (Classification/Regression)
  3. What’s the goal? (Prediction/Inference)
  4. How will you evaluate? (Training/Testing)
  5. How will you balance complexity? (Bias/Variance)

Answer these questions before you pick an algorithm. It sounds obvious, but I’ve seen plenty of teams skip straight to the modeling and pay for it later.

Machine Learning for Non-Technical Professionals

Why Your “Silly Questions” Are Product Requirements We have a technical writer on our team. She’s sharp, curious, and exactly the kind of non-technical...
mladvocate
7 min read

A Friendly Introduction to Principal Component Analysis

Most datasets don’t have two or three measurements per observation. They have dozens, sometimes hundreds. A patient record might include blood pressure, cholesterol, glucose...
mladvocate
5 min read

Training vs Testing Data: ML Models Must Prove Themselves

Does this sound familiar? You’re tutoring a student for an upcoming math test. You help them solve dozens of practice problems over several days,...
mladvocate
5 min read
ML Advocate Assistant
Answers from the blog
Hi! πŸ‘‹ Ask me anything about machine learning β€” I'll answer using ML Advocate blog posts.