正则化超参数
决策树几乎不对训练数据做任何假设(于此相反的是线性回归等模型,这类模型通常会假设数据是符合线性关系的)。
如果不添加约束,树结构模型通常将根据训练数据调整自己,使自身能够很好的拟合数据,而这种情况下大多数会导致模型过拟合。
这一类的模型通常会被称为非参数模型,这不是因为它没有任何参数(通常也有很多),而是因为在训练之前没有确定参数的具体数量,所以模型结构可以根据数据的特性自由生长。
于此相反的是,像线性回归这样的参数模型有事先设定好的参数数量,所以自由度是受限的,这就减少了过拟合的风险(但是增加了欠拟合的风险)。
DecisionTreeClassifier
类还有一些其他的参数用于限制树模型的形状:
min_samples_split
(节点在被分裂之前必须具有的最小样本数),min_samples_leaf
(叶节点必须具有的最小样本数),min_weight_fraction_leaf
(和min_samples_leaf
相同,但表示为加权总数的一小部分实例),max_leaf_nodes
(叶节点的最大数量)和max_features
(在每个节点被评估是否分裂的时候,具有的最大特征数量)。增加min_* hyperparameters
或者减少max_* hyperparameters
会使模型正则化。一些其他算法的工作原理是在没有任何约束条件下训练决策树模型,让模型自由生长,然后再对不需要的节点进行剪枝。
当一个节点的全部子节点都是叶节点时,如果它对纯度的提升不具有统计学意义,我们就认为这个分支是不必要的。
标准的假设检验,例如卡方检测,通常会被用于评估一个概率值 — 即改进是否纯粹是偶然性的结果(也叫原假设)
如果 p 值比给定的阈值更高(通常设定为 5%,也就是 95% 置信度,通过超参数设置),那么节点就被认为是非必要的,它的子节点会被删除。
这种剪枝方式将会一直进行,直到所有的非必要节点都被删光。
图 6-3 显示了对moons
数据集(在第 5 章介绍过)进行训练生成的两个决策树模型,左侧的图形对应的决策树使用默认超参数生成(没有限制生长条件),右边的决策树模型设置为min_samples_leaf=4
。很明显,左边的模型过拟合了,而右边的模型泛用性更好。