光决策树我们就介绍了好几种模型,这里有一些重要的问题:
- 如何验证(verification)和确认(validation)一个模型?
- 对于一个个体的问题,使用哪种方法?
- 如何将一种方法与另一种比较?
通常高质量的数据是短缺的,下面我们讨论如何在有限的数据上检验模型的预测性能。
- 再代入法。同一个数据集,先用于训练,再用于检验。这种方法对误差率的估计是偏向乐观的,在现实中很少使用,当样本大小与维度相当时尤是如此。
- n折交叉验证。将样本划分成n个互不相交的子集,轮流选择其中一份用于测试,其他n-1份用于训练。这是实践中最常用的方法,尤其对于较小的问题。
- 自动法。这里介绍于种0.632自助法(0.632 bootstrap)。对于含有n个实例的数据集进行n次有放回的抽样,用抽样得到的样本(里面有重复的)作为训练集,原始的样本作为测试集。我们来计算一下原样本中有多少个实例没有被包含在训练集中。1个实例在n次有放回的抽样中都没有被抽到训练集中的概率为:
即训练集中只包含了62.3%的原始样本,这就是0.632自助法名字的由来。这种方法对误差率的估计是悲观的,再代入法是乐观的估计,因此可以将这两种方法混合起来,给出最终的误差率:e=0.632*e检验实例+0.368*e训练实例
比较两种模型可以考察以下几个方面:
- 误差率
- 速度
- 鲁棒性
- 可伸缩性
- 可解释性
在许多数据挖掘应用中,假定所有错误都具有相同的权重不是能接受的,不同类型的错误应与不同的权重相关联。
下面介绍一种代价敏感性的学习。假如有两类分类问题--yes和no。我们人为将数据集中no的实例增加10倍,然后进行训练。如果学习方案力求误差最小化,则得到的决策结构会朝着避免no实例上的错误倾斜。改变训练实例比例的一种方法是复制训练数据中的实例,其实还有许多学习方案支持实例被赋予不同的权重。