1. 评估方法
由于实际训练中无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准。因此在周志华的机器学习课本中写到以下几种评估方法。
1.1 留出法
简而言之就是将数据集划分为训练集(70%)和测试集(30%),但是要注意以下几点 :
训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据的划分过程引入额外的偏差而对最终结果产生影响(在广告预测中,假设样本数据的用户分别有中国人、美国人、朝鲜人、德国人,而划分数据集时将中国人和美国人的数据作为训练集,朝鲜人和德国人的数据作为测试集,这种做法将会引入额外的偏差。正确的做法是在每个国家中抽取百分之70作为训练集,剩下的作为测试集)
分类任务中要保持样本的类别比例相似。
使用留出法时,一般要使用若干次随机划分,每次产生一个训练/测试集用于实验评估,100次后就得到100个结果,而留出法返回的则是这100个结果的平均。
另外值得一提的是,可以根据你的样本量来划分训练集和测试集。假设有1000000样本量,那么你可以将99%的样本划分为训练集,1%的样本做为测试集,因为10000个样本做为测试集已经足够。
1.2 交叉验证法
交叉验证法是将数据集 D D 划分为 个大小相似的互斥子集。每个子集都尽可能保持数据分布的一致性(可以分层采样)。然后,每次用 k−1 k − 1 个子集的并集作为训练集,余下的那个子集作为测试集;这样就可以获得 k k 组训练/测试集,从而可进行 次训练和测试,最终返回的是这 k k 个测试结果的均值。 最常用的取值是10,此时称为10折交叉验证。与留出法相似,为减小因样本划分不同而引入的差别, k k 折交叉验证通常要随机使用不同的划分重复 次,最终的评估结果过是这 p p 次 折交叉验证结果的均值。
2. 性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。
2.1 错误率与精度
错误率是分类错误的样本数占样本总数的比例。见式1.1