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...