决策树算法梳理
1.信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)
信息
引用香农的话,信息是用来消除随机不确定性的东西
这个是熵和信息增益的基础概念,是对一个抽象事物的命名,无论用不用‘信息’来命名这种抽象事物,或者用其他名称来命名这种抽象事物,这种抽象事物是客观存在的。如果带分类的事物集合可以划分为多个类别当中,则某个类(xi)的信息(量)定义如下:
I(x)用来表示随机变量的信息,p(xi)指是当xi发生时的概率。当事件xi发生的概率p(xi)很小,但是它却发生了,那这个信息量相当大,比如买彩票中奖了,那么这个信息量肯定是很大的。相反,对于大概率事件,人们习以为常,那么这个事件的信息量就很小。这就体现在上述公式中。
-
熵——代表的是随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大。即描述的是有关事件X的所有可能结果的自信息期望值。在信息论和概率论中熵是对随机变量不确定性的度量。
- 信息熵”是度量样本纯度最常用的一种指标。所谓样本纯度,相反而言之就是凌乱程度。如一个数据集U中的样本都属于同一类,那么这时样本纯度最高而凌乱程度最低
-
联合熵——A与B同时发生的信息熵
-
条件熵——条件熵是用来解释信息增益而引入的概念。X给定条件下Y的条件概率分布的熵对X的数学期望,在机器学习中为选定某个特征后的熵。
-
信息增益——信息增益 指的是,使用某一个属性a进行划分后,所带来的纯度提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。
信息增益 = 根节点的信息熵 - 所有分支节点的信息熵的加权和
信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好,在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的)
注意:这里不要理解偏差,因为上边说了熵是类别的,但是在这里又说是集合的熵,没区别,因为在计算熵的时候是根据各个类别对应的值求期望来等到熵
-
基尼不纯度——基尼不纯度,是指将来自集合中的某种结果随机应用在集合中,某一数据项的预期误差率。
是在进行决策树编程的时候,对于混杂程度的预测中,一种度量方式。
- 基尼值 Gini(D) 反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。
- 基尼指数是针对于属性定义的,其反映的是,使用属性a进行划分后,所有分支中(使用基尼值度量的)纯度的加权和。1、是一种不等性度量; 2、通常用来度量收入不平衡,可以用来度量任何不均匀分布; 3、是介于0~1之间的数,0-完全相等,1-完全不相等; 4、总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)
注意:熵和基尼不纯度之间的主要区别在于,熵达到峰值的过程要相对慢一些。因此,熵对于混乱集合的判罚要更重一些。
2.决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景
决策树是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似规则的方法。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。
决策树通常包括三个步骤: 特征选择,决策树生成和决策树剪枝
决策树的生成过程就是:使用满足划分准则的特征不断的将数据集划分为纯度更高,不确定性更小的子集的过程。
-
ID3算法
核心思想即在决策树的各个节点上使用信息增益选择特征。从根节点开始,计算所有特征的信息增益,选择信息增益最大的特征作为节点特征,再根据该特征的取值建立子节点,对子节点递归调用上述过程。即:
输入:训练数据集D,特征A,阈值beta :
输出:决策树T
(1)若D中所有实例属于同一类Ck则T为单节点树,并将Ck作为该节点的类标记,返回T
(2)若A为空集,则通过统计D中实例数最大的类作为该节点类标记(即对于某一节点而言,没有其它特征可以进行分辨了,则对将该节点的类设置为分到该节点数据最多属于的类中),返回T
3)否则计算A中各特征对D的信息增益,选择信息增益最大的特征 Ag :
信息增益: