4.1 决策树的基本流程
决策树构建的基本步骤如下:
-
开始,所有记录看作一个节点
-
遍历每个变量的每一种分割方式,找到最好的分割点
-
分割成两个节点N1和N2
-
对N1和N2分别继续执行2-3步,直到每个节点足够“纯”为止
算法原理:
决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。决策数有两大优点:
1)决策树模型可以读性好,具有描述性,有助于人工分析;
2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。
4.2 划分选择
在决策树基本算法中,有三种情况会导致递归返回:
- 当前结点包含的样本全属于同一类别,无需划分;
- 当前属性集为空,或是所有样本所在属性上取值相同,无法划分;
- 当前结点包含的样本集合为空,不能划分。
4.2.1 信息增益
“信息熵”是度量样本集合纯度最常用的一种指标。
信息增益定义为:
在已知属性(特征)a的取值后y的不确定性减少的量,即纯度的提升。 一般而言,信息增益越大,则意味着使用某属性进行划分所获得的纯度提升越大。
4.2.2 增益率
信息增益偏好可取数目较多的属性,所以要使用“增益率”。
IV(a)称为属性a的固有值,属性a的可能取值数目越多,IV(a)越大。
4.2.3 基尼系数
CART决策树算法使用“基尼系数”来选择划分属性。
属性a的基尼指数定义为
4.3 剪枝处理
剪枝是决策树学习算法对付过拟合的主要手段。分为“预剪枝”和“后剪枝”
4.3.1 预剪枝
预剪枝是指在决策树生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树泛化性能的提升,则停止划分并将当前节点标记为叶节点。
4.3.2 后剪枝
后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能的提升,则将该子树替换成叶结点。
4.4 连续与缺失值
4.4.1 连续值处理
连续值可以采用二分法,如C4.5决策树算法中的机制。
4.4.2 缺失值的处理