评估方法:
数据集可以分为 训练集,交叉验证集,测试集。
- 训练集相当于自己做作业,
- 验证集相当于考试测试一下自己的实力,
- 测试集就是真刀真枪的干(当你训练好了模型以后,就算模型的数据告诉你它很牛逼,你最好在测试集试一试,不然直接上生产可能不及预期)
一般训练集,验证集,测试集的数据比例是 60%:20%:20%,但如果数据量很大,比如上百万的,验证集和测试集分别用几万就行
上面的集合需要互斥,最好别出现训练集和验证集出现重复数据的事情(比如你偷看了考试答案,就算考过了,真实场景上的时候也得输)。
留出法
将所有的数据按照比例划分,然后别动,比如10万个数据,6万是训练集,2万是验证集,2万是测试集,划分完了别动,就那么训练
如果数据量很大,比如几百万的数据,训练集一次性加载那么多内存会爆,需要分批次进行训练(比如一次加载10万),验证集的选择方式有两种主要的做法:
固定验证集(Validation Set不变):
- 在这种情况下,你从训练集(或者整个数据集)中预先划分出一部分数据作为验证集。这个验证集在整个训练过程中保持不变。每次模型训练时,无论训练数据如何分批,验证集都会是相同的。
- 这种方法的优势在于,你可以确保验证集的数据不受每次训练中数据分批的影响,从而获得一个稳定的模型评估标准。
- 缺点是,验证集可能会在一定程度上与训练集有重叠,这可能导致过拟合的问题,特别是当数据量较小或验证集划分不够随机时。
from sklearn.model_selection impo