过拟合和欠拟合图片长什么样
时间: 2025-01-06 18:19:03 浏览: 3
### 过拟合与欠拟合的图像表示
在机器学习中,过拟合和欠拟合是两个常见的现象。为了更好地理解这两种情况,可以通过学习曲线来进行可视化。
#### 欠拟合的情况
当模型过于简单以至于无法捕捉到数据中的模式时,就会发生欠拟合。此时,无论是训练集还是验证集上的表现都不尽如人意。通常表现为:
- 训练误差较大;
- 验证误差也较大;
- 学习曲线上两条线都处于较高水平,并且差距不大;
这种情况下,模型缺乏足够的表达力去适应输入特征的变化[^1]。
```python
import matplotlib.pyplot as plt
import numpy as np
# 假设这是简单的线性回归案例下的欠拟合情形
train_sizes = np.linspace(0.1, 1.0, 10)
training_scores_underfitting = [0.7]*len(train_sizes) # 较低分数不变
validation_scores_underfitting = [0.68]*len(train_sizes)
plt.figure(figsize=(8, 5))
plt.plot(train_sizes, training_scores_underfitting, 'o-', color="r", label="Training score (Underfitting)")
plt.plot(train_sizes, validation_scores_underfitting, 'o-', color="g", label="Cross-validation score (Underfitting)")
plt.xlabel('Training examples')
plt.ylabel('Score')
plt.title('Learning Curves for Underfitting Model')
plt.legend(loc='best')
plt.grid()
plt.show()
```
#### 过拟合的情况
相反地,如果模型过分复杂并试图记住所有的细节甚至噪音,则会出现过拟合的现象。其特点如下:
- 训练误差非常小;
- 而验证误差相对较大;
- 学习曲线上可以看到随着样本量增加,两者之间的差异逐渐增大;
这意味着虽然该模型可以在已知的数据上取得很好的成绩,但对于未见过的新数据却难以给出准确预测[^2]。
```python
# 同样假设这是一个多项式回归的例子下发生的过拟合状况
training_scores_overfitting = list(np.random.uniform(low=0.95, high=1.0, size=len(train_sizes))) # 接近完美的得分
validation_scores_overfitting = list(np.random.uniform(low=0.6, high=0.7, size=len(train_sizes)))
plt.figure(figsize=(8, 5))
plt.plot(train_sizes, training_scores_overfitting, 'o-', color="b", label="Training score (Overfitting)")
plt.plot(train_sizes, validation_scores_overfitting, 'o-', color="m", label="Cross-validation score (Overfitting)")
plt.xlabel('Training examples')
plt.ylabel('Score')
plt.title('Learning Curves for Overfitting Model')
plt.legend(loc='best')
plt.grid()
plt.show()
```
对于理想状态而言,应该寻找一个合适的平衡点使模型既不会太简单也不会太过复杂,从而能够在新数据上有较好的泛化能力[^4]。
阅读全文