建模——模型评估笔记1

       一般地,数据划分成2块,一块训练集,用来训练模型,一块测试集,用来测试评估模型。这时会出现一个问题,训练好的模型有可能在测试集上出现过拟合,所谓过拟合就是指模型在训练集上有较高的分数,但是在测试集上预测不出有价值的信息,也可以理解成缺乏泛化能力。为了解决这类问题,要再准备一块验证集,模型训练好之后在验证集上对模型进行评估,如果评估结果较好就在测试集上进行最后的测试评估。


       这时又会出现另一个问题,当数据划分成3块时,数据量会大大减少,结果会依赖于训练和验证的选择上。为了解决这个问题,引入交叉验证,所谓交叉验证,最基础的是把数据分成K折,K-1折用来训练,剩余的1折用来验证,每一折都会充当一次验证集,这个方法优点是不需要单独分出来验证集,而且每个数据都可以参与到模型训练验证,缺点是计算代价大,需要进行K次训练验证。这个方法对数据量小的建模比较友好。


       有函数可以直接用来做交叉验证,cross_val_score,还有一个是cross_validate,后者能指定多个打分类型,比如同时查看准确率和召回率,除了能返回测试的打分情况,还能返回训练上的打分情况、拟合次数等,后者返回信息更多,前者只返回测试上的打分情况。


       交叉验证默认返回的是预测的准确率,与准确率常联系起来的有召回率,所谓准确率是针对预测样本来说的,有多少个预测样本预测正确了,比如100个预测样本,预测准确的有80个,那么准确率就是80%。所谓召回率,我看了几个例子,更多的是说到分类问题上,就是针对实际样本而言,有多少样本正确的预测出来了。

       如果不用交叉验证评估模型,使用普通的打分函数,比如score也能评估模型。

发布了34 篇原创文章 · 获赞 4 · 访问量 3371

猜你喜欢

转载自blog.csdn.net/lvhuike/article/details/102923848