sklearn(六)--------overfitting

来源:互联网 发布:淘宝店铺招牌制作软件 编辑:程序博客网 时间:2024/06/08 11:02

上次说到很多算法有的时候会出现overfiting的现象,这里我们用代码可视化一下,看看什么是overfiting

from sklearn.learning_curve import learning_curve#可视化整个学习的过程,我们怎么降低这个误差
from sklearn.datasets import load_digits#数字的数据
from sklearn.svm import SVC 
import matplotlib as plt
import numpy as np




digits=load_digits()
X=digits.data
y=digits.target
train_sizes, train_loss,test_loss=learning_curve(
        SVC(gamma=0.001),X,y,cv=10,scoring='mean_squared_error',
        train_sizes=[0.1,0.25,0.5,0.75,1])#cv=10就是上一节说的交叉验证

train_loss_mean=-np.mean(train_loss,axis=1)
test_loss_mean=-np.mean(test_loss,ais=1)
plt.plot(train_sizes,train_loss_mean,'o-',color="r",label="Training")
plt.plot(train_sizes,test_loss_mean,'o-',color="g",label="Cross_validation")
plt.xlabel("Traning examples")
plt.ylabel("loss")
plt.legend(loc="best")
plt.show

这里插入一点东西



这个模块很强大,用着个模式,只要我们给他   

模型 ;数据  ;CV=10是交叉验证数据,score是得分的方法;train_sizes是我们每隔多少比例记录以上数据的训练误差和测试误差

这里模型我们给的是SVC




代码结果:

                                                          

但是如果我们修改一下SVC的值gamma=0.1时:

结果是:

                                                           

这就是overfiting