数据集划分
数据集划分是机器学习里非常重要的概念。我们通常会把数据集划分出一部分来,不参与训练,在训练时,使用这些数据去测试模型效果。这部分数据就是验证集。
少量数据的情况
在数据不多的情况下,比如少于1000张图,一般是分出来20%的数据,作为验证集。如果验证集数量太少,比如不到10张,测量的准确率就会有比较大的误差(不是100%就是90%,跨度太大)。
大量数据的情况
在数据量很大的情况下,比如大于10000张,我们就会适当减少验证集的比例,比如降到10%,或者更低。
这是因为训练数据非常宝贵,如果我们有10万张图,验证集还划分20%,就会白白浪费掉2万张图。收集这些图片是非常耗费精力的,我们应该充分利用这些数据。
如果有10个类,划分5%的数据做验证,每个类就有500张,就足以计算出比较准的指标(0.2%的区分度),是比较合适的。
数据极少的情况
如果训练数据实在是太少,只有10张,但是也想训练模型看看效果,可以直接将训练集设置为100%,验证集设置为20%,这时候验证集会使用训练集的最后2张图。因为模型已经见过这些图,所以评估指标通常是100%。
%%{init: {'theme': 'default', 'flowchart': {'curve': 'linear'}, 'gantt': {'width': 100}}}%%
gantt
title 数据集划分
dateFormat X
axisFormat %s
section 数据集
数据集: 0, 100
section 训练集
训练集: 0, 100
section 验证集
验证集: 80, 100
将训练集划分到100%,验证集也划分到100%,此时验证集就是训练集。这样也能训练出来模型,只不过因为所有的数据模型都见过,指标通常都是100%。