目前最常用的是CART树:
评价标准:每次划分后子节点的纯度(即是否标签都为0/1),分为信息熵、基尼系数(越小则纯度越高)和分类误差
找划分节点的方法:CART树无需区分连续和离散变量,只要在每两个取值间取中间值作为切点即可。(注意C4.5不用这种方法处理离散变量)
停止:基尼系数下降小于一个阈值
剪枝:CART树采用正则化方法在损失函数中加入结构复杂度惩罚因子
(当然也可以用树的层数,每层节点数作为超参数来剪枝)
具体参数如下:
几个重要的参数
A.criterion:选基尼不纯度,计算速度快。且基尼不纯度倾向于在数据集中分割出多数类,而信息熵则倾向于分出更加平衡的树
B.Ccp_alpha:越大则对模型结构惩罚力度越大,模型结构越简单
C.控制树结构的参数:max_depth(注意是生长了几层,不是总共几层)、max_leaf_nodes、min_samples_split、min_samples_leaf、min_impurity_split、min_impurity_decrease
注意计算不纯度的时候,要乘父节点的样本占比,这也是防止过拟合的方式之一
D.控制迭代随机过程的参数类
Splitter、max_features
ID3和C4.5和CART的对比
ID3只能处理离散型变量,连续型变量要分箱。ID3是根据一列的不同取值做展开,一次分成几类。由于是以熵的变化作为标注,因此它会选择一列中离散值较多的列。ID3是选一列,而C4.5是在所有切点中选一个
C4.5是ID3的改进,改进如下:
1、引入信息值修正信息熵,以抑制ID3找值多的列来展开,从而抑制过拟合。具体方法是-p*logp,但是它是计算特征不同取值的混乱程度,而信息熵是计算标签不同取值的混乱程度
2、引入连续值得处理方法,即CART中寻找相邻值得中间值作为切分点。而离散变量还是按照按ID3的方法来
3、加入剪枝流程,防止过拟合
4、注意,CART树也可以处理离散变量,和C4.5不同的是,它是按连续变量找中间值的方法来处理的
CART回归树:集成算法的基础
评估标准改为了MSE,也可以用MAE,此时是直接计算街道距离。选择标准:如果希望对极端值有较好的识别能力则用MSE否则用MAE。