Sklearn 中的 learning curve 可以很直观的看出我们的 model 学习的进度, 对比发现有没有 overfitting 的问题. 然后我们可以对我们的 model 进行调整, 克服 overfitting 的问题.
Learning curve 检视过拟合
加载对应模块:
1 | from sklearn.learning_curve import learning_curve #学习曲线模块 |
加载digits数据集,其包含的是手写体的数字,从0到9。
数据集总共有1797个样本,每个样本由64个特征组成, 分别为其手写体对应的8×8像素表示,每个特征取值0~16。
1 | digits = load_digits() |
观察样本由小到大的学习曲线变化, 采用K折交叉验证 cv=10, 选择平均方差检视模型效能 scoring='mean_squared_error', 样本由小到大分成5轮检视学习曲线(10%, 25%, 50%, 75%, 100%):
1 | train_sizes, train_loss, test_loss = learning_curve( |
可视化图形:
1 | plt.plot(train_sizes, train_loss_mean, 'o-', color="r", |

Checking if Disqus is accessible...