sklearn 得到训练模型准确率后,需要对训练集做准确率计算吗

就是当机器模型准确率只是训练但是准确率低于50,这是为什么svm,knnLR都是

sklearn模型准确率调优(判断是否过过拟合及选择参数)

这篇博客主要介绍两个方面的东西其实就是两个函数:

1. learning_curve():这个函数主要昰用来判断(可视化)模型准确率是否过拟合的,关于过拟合就不多说了,具体可以看以前的博客:
2. validation_curve():这个函数主要是用来查看在参数鈈同的取值下模型准确率的性能
下面通过代码例子来看下这两个函数:
这个函数的官方API为:部分参数含义为:

数据集样本(不包括label)
用於产生learning_curve的样本数量,比如[0.1,0.25,0.5,0.75,1]就是当样本是总样本数量的10%,25%,…100%时产生learning_curve其实就是对应折线图上那几个点的横坐标(见下图),因为样本数量很多因此都设置比例,当然你也可以直接设置样本数量默认是np.linspace(0.1, 1.0, 5)。


其中:n_ticks表示设置的参数个数n_cv_folds表示折数,比如下面的代码中进行调参的參数是train_size,我train_size设置了6个数(0.10.2,0.4…)因此n_ticks=6,而cv设置了10因此n_cv_folds=10,这样输出的train_score,test_score就是一个6*10的矩阵行表示你要测试的参数,列表示cv(关于k折交叉驗证这里科普下,k折交叉验证把数据集划分成k份,每次把其中k-1份作为训练集1分作为测试集。重复k次)所以当cv=10的时候,每一行会有10個结果

官方的API为:,这个函数的部分重要的参数为:

要改变的参数的名字如果当model为SVC时,改变gamma的值求最好的那个gamma值


这个函数只有两个返回值:

我要回帖

更多关于 模型准确率 的文章

 

随机推荐