sklearn最后一篇-------解决overfiting

来源:互联网 发布:java软件开发流程 编辑:程序博客网 时间:2024/05/16 09:23

from sklearn.learning_curve import validation_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

param_range=np.logspace(-6,-2.3,5)

train_loss,test_loss=validation_curve(

SVC(),X,y,param_name='gammer',param_range=param_range,cv=10,scoring='mean_squared_error',

)#cv=10就是上一节说的交叉验证

train_loss_mean=-np.mean(train_loss,axis=1)

test_loss_mean=-np.mean(test_loss,ais=1)

plt.plot(param_range,train_loss_mean,'o-',color="r",label="Training")

plt.plot(param_range,test_loss_mean,'o-',color="g",label="Cross_validation")

plt.xlabel("gammar")

plt.ylabel("loss")

plt.legend(loc="best")

plt.show


只一个主要是说validation_curve这个函数;他可以改变model里面的参数比如给变SVC里面的

gamma我们先定义一个param_range=np.logspace(-6,-2.3,5)范围,在validation_curve里

定义一个参数的名字param_name='gammer',在定义他的param_range=param_range

结果是:


原创粉丝点击