1.评估方法
为了对学习器的泛化误差进行评估,需要采用一个测试集(不在训练集里)来测试模型的能力。这时我们会将数据集D进行适当的处理,从D中获取训练集S和测试集T。不仅如此,有时在D中还需要有一个验证集(Validation)用于比较不同模型的结果。
1.1 留出法(Hold-Out)
直接讲数据集分为两个互斥的集合。比如把数据集按照37分,7分作为训练集,3分作为测试集。一般会采用若干次随机划分,重复进行实验评估后取平均值作为留出法的结果。需要注意的是划分比例,因为:
S 太多 -----T 太少 ------评估结果可能不够准确
S 太少 -----T 太多 ------离真实的模型差距太大
1.2 交叉验证法(Cross-validation)
将数据集D划分成K个大小相同互斥的子集。每次用K-1个子集作为训练集,剩下一个作为测试集。这样就可以获得K组训练集和测试集,从而可进行k次训练和测试,最后返回的也是k组测试的结果的均值。
如果一共m个样本,k=m,在这个特殊情况下得到的交叉验证法称之为留一法(Leave-One-Out),留一法的优势是实际评估的模型与期望评估的模型很相似。缺点是计算开销太大。
1.3 自助法(bootstrapping)
上述两种方法都有一个弊端,那就是训练集都小于实际的数据集D,而我们想要的是D训练出来的模型。因此自助法很好的解决了这个问题,在m个样本的数据集D中,每次随机