机器学习之决策树
决策树原理
决策树是一种分类和回归的基本模型,可从三个角度来理解它,即:
- 一棵树
- if-then规则的集合,该集合是决策树上的所有从根节点到叶节点的路径的集合
- 定义在特征空间与类空间上的条件概率分布,决策树实际上是将特征空间划分成了互不相交的单元,每个从根到叶的路径对应着一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。实际中,哪个类别有较高的条件概率,就把该单元中的实例强行划分为该类别。
生成过程
一颗决策树的生成过程如下:
- 根据当前集合,选择最优划分属性。
- 根据属性不同,将样本划分到不同的子节点。
- 继续对子节点进行递归。
停止条件
停止条件:
- 当前结点包含的样本全属于同一类别,无需划分。
- 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。(标记为叶节点,类别设定为该节点所含样本最多的类别)
- 叶子节点的样本数或信息增益小于一定阈值。
前两种容易导致过拟合。
优缺点
优点:1. 可解释性强;2. 测试数据集时,分类速度快;3. 可以同时处理标称型和数值型数据;4. 适合处理有缺失属性的样本;5. 能够处理不相关的特征。
缺点:1. 容易过拟合;2. 异常值敏感;3. 容易忽略数据集中属性的相互关联。
划分选择
决策树学习的关键是如何选择最优划分属性。特征分类能力的衡量通常采用信息增益、信息增益率、基尼系数。
信息增益(ID3)
样本集合 D D D中第 k k k类所占比例为 p k ( k = 1 , 2 , ⋯ , n ) p_k(k=1,2,\cdots,n) pk(k=1,2,⋯,n),则 D D D的信息熵为
E n t ( D ) = − ∑ k = 1 n p k log 2 p k {\rm Ent}(D)=-\sum_{k=1}^np_k \log_2p_k Ent(D)=−k=1∑npklog2pk
E n t ( D ) {\rm Ent}(D) Ent(D)的最小值为0,最大值为 l o g 2 ∣ y ∣ log_{2}|y| log2∣y∣,且 E n t ( D ) {\rm Ent}(D) Ent(D)越小,纯度越高。
假设离散属性 a a a有 V V V个可能的取值 { a 1 , a 2 , ⋯ , a V } \{ a^1,a^2,\cdots,a^V\} {
a1,a2,⋯,a