机器学习-决策树
1、基本流程
- 当前结点包含的样本全属于同一类别,无需划分
- 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
- 当前结点包含的样本集合为空,不能划分
2、划分选择
决策树学习的关键是算法第8行,即如何选择最优划分属性。
随着划分进行,目标为决策树的分支结点所包含的样本尽可能属于同一类别,即结点的纯度purity越来越高。
2.1、信息增益
信息熵,度量样本集合纯度最常用的一种指标,信息熵越小,纯度越高。集合D的信息熵为
信息增益,样本集D的信息熵减去用属性a分类后各结点信息熵的加权求和,表示用a属性来划分所获得的”纯度提升“越大
则第8行选择属性的算法为
2.2、增益率
当用如编号划分时,每个分支结点只包含一个样本,纯度最大,但此决策树不具有泛化能力。
信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好的不利影响,引入增益率
I V ( a ) IV(a) IV(a)称为属性a的固有值,a的可能取值数目越多,即 V V V越大,则 I V ( a ) IV(a) IV(a)的值通常会越大。
增益率准则对可取值数目较少的属性有所偏好
通常先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的
2.3、基尼指数
CART 决策树Classification and Regression Tree 使用基尼指数Gini inde来选择划分属性。
数据集D的纯度用基尼值来度量,反映从数据集D中随机抽取两个样本,其类别标记不一致的概率。
G i n i ( D ) Gini(D) Gini(D)越小,数据集 D D D的纯度越高。
属性a的基尼指数为
故选择划分后基尼指数最小的属性作为最优划分属性,
3、剪枝处理
为防止算法把训练集自身的一些特点当作所有数据都具有的一般性质而导致的过拟合,主动减掉一些分支降低过拟合风险。
预剪枝,在结点划分前进行估计。
后剪枝,在生成一颗完整的决策树后,自底向上对非叶结点进行考察。
剪枝评判标准为结点对决策树的泛化性能是否提升
3.1、预剪枝
可用留出法等评估增加结点后的验证集精度,选择是否增加新结点
优点:降低过拟合风险,减少决策树的训练时间开销和测试时间开销
缺点:”贪心“的本质禁止一些分支展开,这些分支可能当前不能提升泛化性能,但后续却导致性能限制提高,这会带来欠拟合风险
3.2、后剪枝
生成完整决策树后,从底部将分支剪除,判断验证集精度
优点:比预剪枝保留了更多的分支,欠拟合风险很小,泛化性能优于预剪枝
缺点:训练时间开销比未剪枝决策树和预剪枝决策树都大很多
4、连续与缺失值
4.1、连续值处理
决策树中遇到连续属性如何处理
使用连续属性离散化技术:
最简单的是采用二分法,C4.5决策树中采用。
-
使用中位点为划分点
-
选取使信息增益最大的划分点
与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性
4.2、缺失值处理
如简单放弃不完整样本,是对数据信息的极大浪费。
- 如何进行划分属性选择
- 如何对缺失属性的样本进行划分
令 D ~ \tilde{D} D~表示 D D D在属性 a a a上没有缺失值的样本子集,仅根据 D ~ \tilde{D} D~来判断属性 a a a的优劣
定义
ρ \rho ρ表示无缺失值样本所占的比例
p k ~ \tilde{p_k} pk~表示无缺失值样本中第 k k k类所占的比例
r v ~ \tilde{r_v} rv~表示无缺失值样本中在属性 a a a上取值 a v a^v av的样本所占的比例
将信息增益计算式推广为
其中
样本划分:
- 样本 x x x在划分属性 a a a上的取值已知,直接划入对应子结点,且样本权值在子结点中为 ω x \omega_x ωx
- 样本 x x x在划分属性 a a a上的取值未知,同时划入所有子结点,权值为 r v ~ ⋅ ω x \tilde{r_v}·\omega_x rv~⋅ωx
5、多变量决策树
如把每个属性视为坐标空间中的一个坐标轴,则 d d d个属性描述的样本就对应了 d d d维空间中的一个数据点,对样本分类则意味着寻找分类边界。
单变量决策树的分类边界特点:轴平行axis-parallel
- 轴平行分类边界对学习结果有较好的可解释性
- 任务复杂时,必须使用多段划分才能获得较好的近似,决策树会相当复杂,预测时间开销会很大
引入斜的划分边界,为多变量决策树,每个节点对属性的线性组合进行测试,即形如
的线性分类器。