决策树原理

1.决策树

1.1数模型

  • 比如下面一家人我们想要进行分类,画出树状图的形式
  • 可以按照年龄来分,也可以按照性别来分
  • 其中从分类到具体人的过程就称为“决策”
  • 所有的数据最终都会落到叶子节点,即可以做分类也可以做回归
  • 决策树对判断顺序的把控非常严格,比如将下图年龄和性别顺序进行调换,那么结果就是截然不同的了

在这里插入图片描述

1.2树的组成

  • 根结点:树模型最上面的点
  • 非叶子节点与分支:中间过程
  • 叶子节点:最终的决策结果

1.3决策树的训练与测试

  • 训练阶段:从给定的训练集构造出来一棵树(从跟节点开始选择特征,如何进行特征切分)
  • 测试阶段:根据构造出来的树模型从上到下走一遍
  • 一旦构造好了决策树,那么分类或者预测任务就很简单了,只需要走一遍就可以了,那么难点就在于如何构造出来一棵树,这就没那么容易了,需要考虑的问题还有很多的

2.熵的作用

2.1如何切分特征(选择节点)

  • 问题:根结点的选择该用哪个特征呢?接下来呢?如何切分呢?
  • 想象一下:我们的目标应该是根结点就像一个老大似的,能更好的切分数据(分类的效果更好),根节点下面的节点自然就是二当家了
  • 目标:通过一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出来最好的那个当成根节点,以此类推

2.2衡量标准-熵

  • 熵:表示随机变量不确定性的度量,不确定性越大,得到的熵值也就越大(就是物体内部的混乱程度,比如杂货市场里面什么都有,就是混乱的,而专卖店只卖一个牌子,就稳定多了)
  • 公式: H ( X ) = − ∑ p i ∗ l o g p i , i = 1 , 2 , … , n H(X)=-\sum pi*log_{pi},i=1,2,…,n H(X)=pilogpi,i=1,2,,n,其中 p i pi pi是概率
  • A集合[1,1,1,1,1,2,2]
  • B集合[1,2,3,4,5,6,7]
  • 显然A集合的熵值低,因为A里面只有两个种类,相对稳定,而B的种类太多了,熵值就会大很多
  • 在分类任务中我们希望通过节点分支后数据类别的熵值大的
  • 在二分类中:概率为0.5的时候不确定性最大,因为在概率为0和1时,随机变量完全没有不确定性,就抛硬币的时候,在抛入空中的时候不确定性是最大的
  • 信息增益:表示特征X使得类Y的不确定性减少的程度(分类后的专一性,希望分类后的结果是同类在一起)

2.3决策树构造实例

  • 现在有下表的数据,是14天的打球情况
  • 特征:4种环境变化

在这里插入图片描述

  • 划分方式:4种
  • 根据信息增益来判断谁当根节点
  • 在历史数据中(14天),有9天打球,5天不打球,所以此时的熵应该为:
  • − 9 14 l o g 2 9 14 − 5 14 l o g 2 5 14 = 0.940 -\frac 9 {14}log_2\frac 9 {14}-\frac 5 {14}log_2\frac 5 {14}=0.940 149log2149145log2145=0.940
  • 4个特征逐一分析,先从outlook特征开始:
  • Outlook=sunny时,熵值为0.971
  • Outlook=overcast时,熵值为0
  • Outlook=rainy时,熵值为0.971
  • 根据数据统计,outlook取值分别为sunny,overcast,rainy的概率分别为: 5 14 , 4 14 , 5 14 \frac 5 {14},\frac 4 {14} ,\frac 5 {14} 145144,145
  • 熵值计算: 5 14 ∗ 0.971 + 4 14 ∗ 0 + 5 14 ∗ 0.971 = 0.693 \frac 5 {14}*0.971+\frac 4 {14}*0+\frac 5 {14}*0.971=0.693 1450.971+1440+1450.971=0.693(加权计算)
  • 接下来用同样的方法,遍历其他三个特征
  • gain(temperature)=0.029
  • gain(humidity)=0.152
  • gain(windy)=0.048
  • 通过比较算出,当outlook时,系统的熵值从原始的0.940下降到0.693,增益为0.247
  • 所以outlook就是根节点
  • 在当前节点下面,再遍历一遍特征,找第二个节点
    在这里插入图片描述

3.信息增益率与gini系数

  • ID3:信息增益
  • C4.5:信息增益率(解决ID3问题,考虑自身熵)
  • CART:使用GINI系数来当做衡量标准
  • GINI系数: G i n i ( p ) = ∑ k − 1 K P k ( 1 − p k ) = 1 − ∑ k − 1 K P k 2 Gini(p)=\sum_{k-1}^K P_k(1-p_k)=1-\sum_{k-1}^K P_k^2 Gini(p)=k1KPk(1pk)=1k1KPk2(和熵的衡量标准类似,计算方式不相同)

4.决策树剪枝策略

  • 决策树拟合风险很大,理论上可以完全分得开数据(想象一下如果树足够庞大,每个叶子节点不就一个数据了吗)
  • 剪枝策略:预剪枝,后剪枝
  • 预剪枝:边建立决策树边进行剪枝的操作(更实用),限制深度,叶子节点个数叶子节点样本数,信息增益量等
  • 后剪枝:当建立完决策树后来进行剪枝操作,通过一定的衡量标准 C α ( T ) = C ( T ) + α ∣ T l e a f ∣ C_\alpha(T)=C(T)+\alpha|T_{leaf}| Cα(T)=C(T)+αTleaf,叶子节点越多,损失越大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simple_learning_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值