第一篇我们主要关注了根结点及内部结点的选择 第二篇主要关注如何处理“过拟合”现象 参考
个性化 与 泛化 是一个相互矛盾概念,就像个体化诊疗与指南的矛盾一样。 决策树对训练数据可以得到很低的错误率,但是运用到测试数据上却得到非常高的错误率,这就是“过拟合现象”。 具体解释如下:对于决策树,我们希望每个叶子节点分的都是正确的答案,所以在不加限制的情况下,决策树倾向于把每个叶子节点单纯化,那如何最单纯呢?极端情况下,就是每个叶子节点只有一个样本,那这样,这个模型在建模集的准确率就非常高了。但是,这又带来了一个问题——过拟合,这会导致该模型在建模集效果显著,但是验证集表现不佳。 这可能有以下几个原因: 1、训练集里面有噪音数据,干扰了正常数据的分支 2、训练集不具有特征性 3、特征太多
使用信息增益来种树时,为了得到最优的决策树,算法会不惜带价倾向于将熵值降为最小(可能的话甚至为0),这颗树会显得非常的冗杂。
通过限制复杂度参数(complexity parameter),抓主要矛盾,来防止模型的过拟合。具体的计算过程可以参考<医学僧的科研日记>,这里我直接引用
剪枝(pruning)则是决策树算法对付过拟合的主要手段,剪枝的策略有两种如下:
定义:预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,如果当前结点的划分不能带来决策树模型泛化性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。
相比于预剪枝,后剪枝往往应用更加广泛,