模型评估与选择
1. empirical error && overfitting(经验误差和过拟合)
分类错误的样本数占样本总数的比例成为 error rate(错误率)
相应的,分类正确的称为 accuracy(精确度)
对于学习器的实际预测输出和样本的真实输出差异称为 error(误差)
- training error|empirical error(训练误差|经验误差)
在训练集上的误差 - generalization error(泛化误差)
在新样本上的误差
在讲到linear regression的课上,Andrew就提出overfitting&&underfitting这两个concepts。欠拟合比过拟合要容易解决,但是过拟合在于可能把训练样本本身的一些特点当作了所有潜在样本都具有的一般性质,从而导致泛化能力下降。(对于Multi-class classification && regression,Andrew给出的方法是使用regularization)
因此,我们需要从众多算法和参数中挑选出最适合,即model selection(模型学习)。这里提供一些方法来计算泛化误差的方法。
2.evaluation method(评估方法)
通常为了计算泛化误差,我们准备一个testing set(测试集),以testing set上的testing error来作为泛化误差的近似,对于给定的m个样例的data set(数据集),我们将采用如下方法将测试集分为训练集S,和测试集T:
- hold-out(留出法)
直接将数据集划分为两个互斥的集合,其中一个留作S,另一个作为T。
需要注意的是,二者的划分要尽量保持数据分布的一致性,从而避免数据划分过程中引入额外的偏差而对最终结果产生影响 - cross validation(交叉验证法)
将数据集分为k组具有保持数据分布的一致性的大小相似的子集,然后k-1个子集的并集作为S,剩下一个子集作为T。然后如此进行k次测试,最终返回测试结果的average
引入leave-one-out(留一法),即将m个样本分为m组,进行类似计算,但当数据量较大时代价大 - bootstrapping(自助法)
从数据集中随机取m次的sample放入D’中,再放回,有微积分可知m取极限时不会被取到的数据的可能占比为1/e,故D’可作为S,而未被取到的为T,可在初始数据中产生多个不同的测试集 - The last step:parameter tuning(调参)
3.performance measure(性能量度)
对于回归任务,最常用的performance measure就是mean squared error(均方误差),即之间讲到的cost function,当然performance measure有很多其他的常用:
- error rate && accuracy
- precision(查准度) && recall(查全度)
对于分类结果,可分为真正例(true positive)假正例(false positive)真反例(true negative)假反例(false negative)
P=TP/(TP+FP); R=TP/(TP+FN); - ROC && AUC (母鸡)
- cost-sensitive error rate(代价敏感错误率)