题目描述:

数据集包含100个样本,其中正、反例各一半,假定学习算法所产生的模型是将新样本预测为训练样本数较多的类别(训练样本数相同时进行随机预测),试给出用10折交叉验证法和和留一法分别对错误率进行评估所得的结果。

解答:

错误率
如果在\(m\)个样本中有\(a\)个样本分类错误,则错误率\(E=a/m\)

10折交叉验证
总共100个样本,10折交叉验证则把样本按分层抽样分成10份,每份10个样本,包含5个正例,5个反例。每次训练,用9份当作训练集,1份当作测试集。则由于训练集中正例和反例一样,所以每次都进行随机预测,每个样本被预测正确的概率为\(1/2\),预测错误的概率也为\(1/2\),则10个测试用例中平均会有一半例子预测错误,故错误率(期望)为:

\[E_1=1/2 \]

留一法
留一法就是每次只留一个样本当测试数据,其他的均为训练数据。假设测试用例是正例,则训练数据中反例多(49个正例,50个反例),则该测试用例被判为反例;反之,如果测试用例是反例,则会被判为正例。因此总是会把测试用例预测错,即

\[E_2=0 \]

总结
训练集和测试集的划分方法不同,在一些极端时候会造成截然不同的结果。