目录
一、决策树算法概述
1、树模型
2、树的组成
3、决策树的训练与测试
训练阶段
测试阶段
二、熵的作用
1、如何切分特征(选择节点)
问题
想象一下
目标
2、衡量标准-熵
熵
熵值公式
举例
三、信息增益原理
1、熵值
2、信息增益
四、决策树构造实例
1、实例
数据
特征
目标
2、决策树构造
例子:基于天气划分
五、信息增益率与gini系数
决策树算法
ID3
C4.5
CART
GINI系数
连续值
六、预剪枝方法
决策树剪枝策略
为什么要剪枝
剪枝策略
预剪枝
七、后剪枝方法
八、回归问题解决
决策树:从根节点开始一步步走到叶子节点(决策)。所有的数据最终都会落到叶子节点,既可以做分类也可以做回归。
根节点:第一个选择点
非叶子节点与分支:中间过程
叶子节点:最终的决策结果
从给定的训练集构造出来一棵树(从跟节点开始选择特征, 如何进行特征切分)。有数据想构建树。
根据构造出来的树模型从上到下去走一遍就好了。有数据想得结果。
一旦构造好了决策树,那么分类或者预测任务就很简单了,只需要走一遍 就可以了,那么难点就在于如何构造出来一颗树,这就没那么容易了,需 要考虑的问题还有很多的!
根节点的选择该用哪个特征呢?接下来呢?如何切分呢?
我们的目标应该是根节点就像一个老大似的能更好的切分数据 (分类的效果更好),根节点下面的节点自然就是二当家了。
通过一种衡量标准,来计算通过不同特征进行分支选择后的分类 情况,找出来最好的那个当成根节点,以此类推。
熵是表示随机变量不确定性的度量 。(解释:说白了就是物体内部的混乱程度,比如杂货市场里面什么都有 那肯定混乱呀,专卖店里面只卖一个牌子的那就稳定多啦)
, i=1,2, ... , n
A集合[1,1,1,1,1,1,1,1,2,2] B集合[1,2,3,4,5,6,7,8,9,1]
显然A集合的熵值要低,因为A里面只有两种类别,相对稳定一些。而B中类别太多了,熵值就会大很多。(在分类任务中我们希望通过节点分支后数据类别的熵值大还是小呢?)
不确定性越大,得到的熵值也就越大。
当p=0或p=1时,H(p)=0,随机变量完全没有不确定性。
当p=0.5时,H(p)=1,此时随机变量的不确定性最大。
特征X使得类Y的不确定性减少的程度。 (分类后的专一性,希望分类后的结果是同类在一起)
14天打球情况
4种环境变化
构造决策树,判断当出现一种天气的情况下,打不打球。
划分方式:4种
问题:谁当根节点呢?
依据:信息增益
Outlook = sunny时,熵值为0.971
Outlook = overcast时,熵值为0
Outlook = rainy时,熵值为0.971
根据数据统计,outlook取值分别为sunny,overcast,rainy的概率分别为:5/14, 4/14, 5/14
熵值计算:5/14 * 0.971 + 4/14 * 0 + 5/14 * 0.971 = 0.693
(gain(temperature)=0.029 gain(humidity)=0.152 gain(windy)=0.048)
信息增益:系统的熵值从原始的0.940下降到了0.693,增益为0.247。
同样的方式可以计算出其他特征的信息增益,那么我们选择最大的那个,相当于是遍历了一遍特征,找出来了大当家,然后再其余中继续通过信息增益找二当家!
(找:信息增益大,熵值小)
信息增益(有什么问题呢?)
问题:ID当做特征,熵值为0,不适合解决稀疏特征,种类非常多的。
信息增益率(解决ID3问题,考虑自身熵)
使用GINI系数来当做衡量标准
(和熵的衡量标准类似,计算方式不相同)
进行离散化。
决策树过拟合风险很大,理论上可以完全分得开数据 (想象一下,如果树足够庞大,每个叶子节点不就一个数据了嘛)
(预剪枝,后减枝)
边建立决策树过程中进行剪枝的操作(更实用)。
限制深度,叶子节点个数。叶子节点样本数,信息增益量等。
后剪枝:当建立完决策树后来进行剪枝操作。
通过一定的衡量标准
:损失
:gini系数
:叶子节点个数
(叶子节点越多,损失越大)
回归问题将方差作为衡量(评估)标准。看标签的平均方差。
分类问题将熵值作为衡量标准。