机器学习的模型评估就是对数据集D进行适当的处理,得到训练集S和测试集T,并在T中对模型进行验证,得到模型的好坏,下面是几种常用的方法:
留出法(hold-out)
- “留出法”就是将数据集分为两个互斥的集合,一个作为训练集S,另一个作为测试集T,有D = S ⋃ \bigcup ⋃ T,S ⋂ \bigcap ⋂ T = ∅ \emptyset ∅
- 其中,训练集S用来训练模型,测试集T用于评估模型的误差或精度,即模型的好坏
- 一般而言,训练集S的比例占数据集D的 2 3 \frac{2}{3} 32 ~ 4 5 \frac{4}{5} 54
- 对数据集D划分时,S与T中数据的分布必须与原数据一致,举例来说,如猫狗二分类的任务,若数据集D中猫狗的比例是7 : 3,则在S和T中,猫狗的比例也应该是7 : 3
- “留出法”较为简单,但存在一些缺陷,主要有两个,一是留出法的验证结果与数据集的划分有关,不同的划分可能会导致不同的误差,导致结果不稳定;另一方面,留出法必须留出一部分数据用于验证,使得训练模型用的数据少于原数据集D,因而可能训练不够充分
- 对于第一个缺陷,可以用下面的“交叉验证法”解决;对于第二个缺陷,可以用下面的“自助法”解决
交叉验证法(cross validation)
- “交叉验证法”是将原数据集D划分成k个不相交且大小相同的集合,且每个集合与原数据集同分布,即 D = S 1 ⋃ S 2 ⋃ S 3 ⋃ ⋯ ⋃ S k D = S_1 \bigcup S_2