Underfitting happens when a machine-learning model fails to learn enough of the useful patterns in its training data, so it performs poorly on both training and new examples. A model that is too simple is one possible cause; weak features, insufficient training, or excessive regularization can produce the same symptom. Compare training and validation performance, then check the data and training pipeline before changing the model.
What underfitting means
A model underfits when it has not captured enough of the relevant structure in its training data to make good predictions. The result is typically poor performance on training examples and on separate validation examples. Google’s Machine Learning Glossary describes underfitting as poor predictive ability when a model has not fully captured the complexity of the training data.
As an Amazon Associate I earn from qualifying purchases.
Insufficient model complexity is a common explanation, but it is not the only one. Google lists unsuitable features, too few training epochs, too low a learning rate, excessive regularization, and too few hidden layers in a neural network as possible causes. These are hypotheses to investigate, not proof that the model itself is too simple.
Free tools Windows power users keep installed
One-click scans. No signup required.
How to recognize underfitting
Compare the model’s scores on its training set with scores on validation data it did not train on. Low performance on both is a typical underfitting signal. Strong training performance paired with substantially weaker validation performance points instead toward overfitting.
#1 Best Overall
| Pattern | Training performance | Validation performance | What it suggests |
|---|---|---|---|
| Underfitting | Low | Low | The model or training setup is not capturing enough useful structure. |
| Useful generalizing fit | Strong | Strong and reasonably close to training performance | The model has learned patterns that also work on validation examples. |
| Overfitting | High | Lower | The model fits training examples better than it generalizes. |
These are diagnostic patterns, not universal score thresholds. Interpret them in light of the metric, the task, and how the data was split. Scikit-learn characterizes a model that is too simple as high bias; a model that fits its training samples but changes too sensitively with different samples exhibits high variance.
Examples of underfitting
Polynomial regression: too simple, useful, or too complex
Scikit-learn’s model-complexity example uses polynomial regression to show three possible fits to a curved relationship. A degree-1 polynomial may be too simple to follow the curve. A degree-4 polynomial can represent it more closely. A degree-15 polynomial can fit the observed training samples yet fail to represent the underlying function well, a sign of overfitting. These degrees illustrate the trade-off; they are not universal recommendations for other datasets.
Rank #2
- Use scikit-learn to track an example ML project end to end
- Explore several models, including support vector machines, decision trees, random forests, and ensemble methods
- Exploit unsupervised learning techniques such as dimensionality reduction, clustering, and anomaly detection
- Dive into neural net architectures, including convolutional nets, recurrent nets, generative adversarial networks, autoencoders, diffusion models, and transformers
- Use TensorFlow and Keras to build and train neural nets for computer vision, natural language processing, generative models, and deep reinforcement learning
The important distinction is not simply whether a model is mathematically complicated. It is whether its learned pattern performs well on examples beyond those used to fit it. See scikit-learn’s validation-curve example.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
A spam classifier with poor scores
Suppose a spam classifier performs poorly on both its training messages and a held-out validation set. That is consistent with underfitting, but it does not identify the cause. Incorrect labels, unhelpful text features, preprocessing errors, class imbalance, a mismatched metric, or a training bug can all make scores look poor. Inspect the examples the classifier gets wrong before deciding to increase model complexity.
Rank #3
How to diagnose the cause
- Check the metric and a baseline. Choose a metric suited to the task, then compare the model with a simple baseline. If the model does not beat that baseline, investigate basic data, implementation, or training problems before tuning complexity.
- Compare training and validation scores. Low scores on both support an underfitting hypothesis. High training performance and low validation performance suggest a generalization problem more consistent with overfitting.
- Inspect data and implementation. Review features, labels, preprocessing, and class balance. Check whether the model can fit a small set of examples; failure to do so can point to a bug in the model or training routine. Examine misclassified examples for label problems or useful opportunities for preprocessing and feature engineering. Google Cloud’s guidelines for developing high-quality predictive ML solutions recommend these kinds of baseline, small-example, and error-analysis checks.
- Plot learning and validation curves. A learning curve tracks training and validation scores as the training-set size changes. A validation curve tracks those scores as a selected hyperparameter changes. If training and validation scores converge at a low level, scikit-learn’s example cautions that adding more data may not help much. Curves can narrow down the problem, but they do not replace checking the data and pipeline.
- Keep final evaluation separate. Use validation data to compare experiments, but do not treat a score repeatedly optimized against that data as an unbiased estimate of generalization. Reserve a separate test set for final evaluation.
Scikit-learn explains the uses of validation curves and learning curves; Google Cloud discusses evaluation splits and model checks.
How to fix underfitting
Once the metric, data, and implementation have been checked, change a plausible cause and evaluate again on the same validation setup. Make one change at a time and record the setting and result so you can tell what helped.
Rank #4
- Improve useful features. Add or transform input information that represents patterns relevant to the task. More features are not automatically better; prioritize features suggested by error analysis.
- Increase model capacity. Try a model that can represent more complex patterns, such as a more suitable estimator or, for a neural network, additional hidden layers. Check whether validation performance improves rather than judging by training score alone.
- Reduce excessive regularization. If regularization is restricting the fit too strongly, test a less restrictive setting and compare both training and validation results.
- Train adequately. If the model has not trained for enough epochs, or its learning rate is too low for effective progress, adjust the training schedule. Review training curves to see whether learning is still progressing; changing the learning rate may require changing its schedule as well.
Google’s glossary lists these as possible causes, while its scientific approach to improving model performance emphasizes evaluating experiments and reviewing training behavior.
Recommended Free Tools
Does adding more training data solve underfitting?
Not necessarily. More data can be useful when the model would benefit from seeing more representative examples, but it is not a general remedy for a model or training process that cannot capture the pattern. In scikit-learn’s example, training and validation scores that converge at a low value may indicate that simply adding samples will not provide much benefit. Use the learning curve and the specific error pattern to decide whether more data is a reasonable experiment.
Best Value
Further reading
For model-capacity examples and curve interpretation, see scikit-learn’s validation-curve documentation. For practical checks involving baselines, small example sets, evaluation splits, and misclassified cases, see Google Cloud’s predictive ML guidelines.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




