2.1经验误差与过拟合
设在m个样本中有a个样本分类错误
错误率(error rata):分类错误的样本数占样本总数的比例,即E=a/m
精度(accuracy):精度 = 1 - 错误率
误差(error):学习器的实际预测输出与样本的真实输出之间的差异
训练误差/经验误差(training/empirical error):学习器在训练集上的误差
泛化误差(generalization):学习器在新样本上的误差
过拟合(overfitting):学习能力过强,训练集将自身特性当作所有潜在样本都会具有的一般性质,泛化能力下降
欠拟合(underfitting):学习能力过弱,训练样本的一般性质尚未学好
模型选择(model selection):理想情况,对候选模型的泛化误差进行评估,然后选择泛化误差最小的模型
2.2评估方法
测试集(testing set):测试学习器对新样本的判别能力,可以测试集上的测试误差作为泛化误差的近似
如果我们只有一个包含m个样例的训练集D,我们即要训练又要测试,我们可以通过对D进行适当的处理,从中产生出训练集S和测试集T。下面列举出了3种常见的做法:1、留出法,2、交叉验证法,3、自助法。
2.2.1留出法(hold-out)
将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T
在划分数据集时,通常采用分层采样(stratified sampling)
若数据集D中存在500个正例和500个反例,则含有70%样本的训练集S应包含350个正例和350个反例,同理,还有30%样本的测试集T应包含150个正例和150个反例。
单次使用留出法得到的估计结果往往不够稳定可靠。因此,使用留出法时,我们要采用若干次随机划分、重复进行实验评估后取均值作为留出法的评估结果。
常见的做法为将 2/3 ~ 4/5 的样本用于训练,剩余样本用于测试。
2.2.2交叉验证法(cross validation)
将数据集D直接划分为k个大小相似的互斥子集,每一次,用(k-1)个集合的并集作为数据集S,余下那个作为测试集T。这样,我们可以进行k次训练和测试,最终返回的是,这k个测试结果的均值。
“交叉验证法”通常也被称作“k折交叉验证”。其中最常用的是“10折交叉验证”
如果数据集D中包含m个样本,我们令k=m,此时有了交叉验证法特例中的“留一法(Leave-One-Out,LOO)”。
优点:不受随机样本划分方式的影响,评估结果往往比较准确。