决策树
前言:第一篇博客,最近看完决策树,想着归纳一下,也方便自己以后回顾。写的会比较全面一些,可能会有很多不太正确的地方,欢迎大家交流指正 : )
决策树模型:
决策树模型是运用于分类以及回归的一种树结构。决策树由节点和有向边组成,一般一棵决策树包含一个根节点、若干内部节点和若干叶节点。决策树的决策过程需要从决策树的根节点开始,待测数据与决策树中的特征节点进行比较,并按照比较结果选择选择下一比较分支,直到叶子节点作为最终的决策结果。
- 内部节点:对应于一个属性测试
- 叶节点:对应于决策结果
- 根节点包含样本全集;
- 每个节点包括的样本集合根据属性测试的结果被划分到子节点中;
- 根节点到每个叶节点的路径对应对应了一个判定测试路径;
决策树的结构还是比较好理解的,如果不明白,可以看一下图中的例子,这是一个简单判断这个键盘我喜不喜欢的决策树模型:
目标变量可以采用一组离散值的树模型称为分类树(常用的分类树算法有ID3、C4.5、CART),而目标变量可以采用连续值(通常是实数)的决策树被称为回归树(如CART算法)。
决策树算法本质上就是要找出每一列的最佳划分以及不同列划分的先后顺序及排布
决策树学习算法:
- 特征选择
- 决策树生成
- 决策树剪枝
(下面讨论的都是分类树,回归树会在后面单独再谈)
特征选择:
特征选择也即选择最优划分属性,从当前数据的特征中选择一个特征作为当前节点的划分标准。我们希望在不断划分的过程中,决策树的分支节点所包含的样本尽可能属于同一类,即节点的“纯度”越来越高。而选择最优划分特征的标准不同,也导致了决策树算法的不同。
为了找到最优的划分特征,我们需要先了解一些信息论的知识:
- 信息熵(information entropy)
- 信息增益(information gain)
- 信息增益率(information gain ratio)
- 基尼指数(Gini index)
熵:
在信息论和概率统计中,熵(entropy)是表示随机变量不确定性的度量,设X是一个取有限值的离散随机变量,其概率分布为
则随机变量 X X 的熵定义为
上述公式中的对数通常以2为底
熵越大,随机变量的不确定性越大。为了能够更好地理解熵的意义,我们下面举一个例子来说明。
当随机变量只取两个值,如1,0时,即 X X 的分布为
则熵为
H(p) H ( p ) 的函数图像如下:
![$H(p)$随概率p变化的曲线](https://i-blog.csdnimg.cn/blog_migrate/49503831b1b1631de48eb6c73da2a899.png)
从图中我们不难看出 p=0or1 p = 0 o r 1 时 H(p) H ( p ) 为0,即不确定性为0。当 p=0.5 p = 0.5 时,不确定性最大。
条件熵:
设有随机变量 (X,Y) ( X , Y ) 。条件熵 H(Y|X) H ( Y | X ) 表示在已知随机变量 X X 的条件下随机变量
的不确定性。随机变量 X X 给定的条件下随机变量
的条件熵 H(Y|X) H ( Y | X ) 定义为 X X 给定条件下
的条件概率分布的熵对 X X 的数学期望
这里, pi=P(X=xi),i=1,2,...,n p i = P ( X = x i ) , i = 1 , 2 , . . . , n
信息增益:
信息增益表示得知特征 X X 的信息而使得类
的信息的不确定性减少程度。接下来给出定义,特征 A A 对训练数据集
的信息增益 g(D,A) g ( D , A ) ,为集合 D D 的熵
与特征 A A 给定条件下
的条件熵 H(D|A) H ( D | A ) 之差,即
信息增益的算法:
输入:训练数据集 D D ,特征
输出:特征 A A 对训练数据集 的信息增益 g(D,A) g ( D , A )
(1): ( 1 ) : 计算数据集