【本文精髓源自b站‘莫烦Python’系列教程】
【适用于Python3版本,相应第三方库建议升级至最新版本】
下面展示两种学习曲线的绘制方法:
'''sklearn.learning_curve 中的 learning curve学习曲线
可以很直观的看出我们的 model 学习的进度, 对比发现 有没有overfitting 的问题.
然后我们可以对我们的 model 进行调整, 克服 过拟合overfitting 的问题.'''
%matplotlib inline
from sklearn.model_selection import learning_curve
from sklearn.datasets import load_digits #自带digits数据集
from sklearn.svm import SVC #支持向量分类器
import matplotlib.pyplot as plt
import numpy as np
digits = load_digits()
X = digits.data
y = digits.target
#观察样本量由小到大的学习曲线变化趋势,评价指标采用均方误差;
#k折交叉验证采用10折,训练样本由小到大体量依次为0.1,0.25,0.5,0.75,1;
train_sizes,train_loss,test_loss = learning_curve(SVC(gamma=0.001),X,y,
cv=10,scoring='neg_mean_squared_error',train_sizes=[0.1,0.25,0.5,0.75,1])#尝试调参gamma;
print(train_loss)#查看训练损失,确为负值,依据不同的train_sizes