机器学习笔记_决策树

在这里插入图片描述

一、决策树简介

来源-百度百科
决策树是一种既能做分类,又能做回归的算法。
基本形状为:
在这里插入图片描述
理解上图中的重要概念(根节点,分支,内部节点,叶子节点)

二、信息熵的概念(entropy)

假设有两个篮子A和B:
A装了 [鸡蛋、苹果、香蕉、橘子、芒果、牛奶]
B装了 [鸡蛋、鸡蛋、鸡蛋、鸡蛋、鸡蛋、牛奶]
从上面两个篮子中随机取一个出来,A有6中结果,B有2种结果
A的不确定性大,B的不确定性小,A的熵 > B的熵 H(A) >H(B)
理解:若一个数据集合内,越混乱,那么熵就越大

信息熵的公式(规定0log(0)=0 )

理解熵的公式

尝试计算上面例子中的H(A)与H(B)
H(A) = {- 1 6 \frac{1}{6} 61 * log ⁡ 2 ( 1 / 6 ) \log_2 (1/6) log2(1/6)}*6 = 2.58
H(B) = - 5 6 \frac{5}{6} 65 * log ⁡ 2 ( 5 / 6 ) \log_2 (5/6) log2(5/6) - 1 6 \frac{1}{6} 61 * log ⁡ 2 ( 1 / 6 ) \log_2 (1/6) log2(1/6) = 0.65
这里对数中,为什么要以2为底数?
遵循信息论的普遍传统,使用2作为对数的底

另外,基尼系数,与熵的概念类似,计算方法为:
Gini ( P ) (P) (P) = ∑ i = 1 k \sum_{i=1}^{k} i=1k P k P_k Pk ( 1 − P k ) (1-P_k) (1Pk)

三、构造决策树(结合简单案例)

案例来源:https://blog.csdn.net/wsp_1138886114/article/details/80955528
基本思想:希望节点的熵迅速降低
案例:特征分别为:性别、车型、衬衣尺码,分类结果为 C0或C1在这里插入图片描述

ID3算法——信息增益(information gain)

  • 先计算一下,不考虑3个特征的信息熵:C0出现10次,C1出现10次
    H = - P C 0 P_{C0} PC0* log ⁡ 2 ( P C 0 ) \log_2 (P_{C0}) log2(PC0) - P C 1 P_{C1} PC1* log ⁡ 2 ( P C 1 ) \log_2 (P_{C1}) log2(PC1)
    H = 2*(-0.5* log ⁡ 2 ( 0.5 ) \log_2 (0.5) log2(0.5))
    H = 1
  • 计算一下,如果根节点是性别,那么信息熵为:
    在这里插入图片描述

gain(性别)= 0.029
同理可得
在这里插入图片描述
gain(车型)= 0.62
gain(性别)= 0.029
因此,这里根节点,应选择车型

C4.5算法——信息增益率

如果将上述顾客ID也作为一个特征值,那么顾客ID的信息增益 肯定是最大的
因为一个ID 对应一个结果
这时,就引入信息增益率算法
信息增益率 = 信息增益/自身的熵值

CART算法——基尼系数

与信息增益算法类似

四、决策树的过拟合问题以及剪枝策略

决策树的过拟合(Overfitting):
决策树训练得过于复杂,高度高,节点多。训练集数据表现很高,误差非常小,但是测试数据的表现不好。

预剪枝

在构建决策树的过程中,提前停止学习

  1. 可以指定决策树的深度
  2. 可以指定决策树的节点的最小样本数(min_sample),如果节点的样本数小于指定值,那么也停止裁剪

后剪枝

决策树构建好之后,开始裁剪
定义损失函数:
C α C_\alpha Cα(T) = C(T) + α \alpha α| T l e a f T_{leaf} Tleaf|
举例:
假设一个非叶子节点,分裂成了3个叶子节点
试算
分裂之后的 C α C_\alpha Cα(T) = 3个叶子节点的基尼系数 + α \alpha α*3
与 分裂之前的 C α C_\alpha Cα(T) = 自身的基尼系数 α \alpha α*1 进行比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值