机器学习——基础决策树(ID3,C4.5,CART)

决策树有分类树(ID3,C4.5)和回归树,分类树的输出是定性的,回归树的输出是定量的

构造决策树的过程

1、决策树的特征选择

计算信息增益(ID3)或信息增益比(C4.5)来选择特征

输入:训练集D和特征集A    输出:特征A对训练集D的信息增益g(D,A)

(1)数据集D的经验熵H(D)

H(D) = -\sum_{i=1}^{n}p_{i}logp_{i}

(2)特征A对数据集D的经验条件熵H(D|A)

H(D|A) = \sum_{i=1}^{n}p_{i}H(D|A = a_{i})

(3)信息增益g(D,A)——ID3算法需要

g(D,A) = H(D) - H(D|A)

(4)信息增益比——C4.5算法需要

g_{R}(D,A) = \frac{g(D,A)}{H_{A(D)}}

其中,H_{A}(D) = -\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}log_{2}\frac{|D_{i}|}{|D|},n是特征A取值的个数

注:信息增益会偏向取值更多的特征。在信息增益计算公式中,g(D,A) = H(D) - H(D|A)特征A的取值越多,条件熵H(D|A)往往越小,导致信息增益越大。因为特征的取值越多,数据集根据这个特征分裂的子集越多,子集越多,每个子集的样本越少,导致每个子集的熵越少(样本越少,信息越少,信息不确定性越小,熵越小),所以条件熵越小

2、决策树的生成

确定:决策树的根节点,决策树的中间节点

ID3算法:

输入:训练集D,特征集A,阈值\varepsilon 

输出:决策树T

1)若D中所有实例属于同一类C_{k},则T为单节点树,并将C_{k}作为该节点的类标记,返回T;

2)若A为空集,没有特征集,T为单节点树,并将D中实例数量最大的类C_{k}作为该节点的类标记,返回T;

3)否则,计算A中各个特征对D的信息增益,选择信息增益最大的特征A_{g};

4)如果A_{g}的信息增益小于阈值\varepsilon,则T为单节点树,并将D中实例最大的类C_{k}作为该节点的类标记,返回T;

5)否则对A_{g}的每一个可能值,根据A_{g} = a_{i}将D分割为若干非空子集D_{i},将其中实例数最大的类作为标记,构建子节点,由节点及其子节点构成树T,返回T;

6)对第i个子节点,以D_{i}为训练集,为特征集,递归调用(1)~(5),得到子树T_{i},返回

C4.5算法:(与ID3算法类似,只是将计算信息增益改成计算信息增益比)
3、决策树的剪枝

目的:防止过拟合,提高泛化能力。对于一个特定的数据集生成的一棵决策树,这个决策树可能只适合这个数据集,容易出现过拟合的状态。 

剪枝方法:极小化决策树整体的损失函数

决策树只考虑了通过提高信息增益(信息增益比)对训练数据更好的拟合,而决策树的剪枝通过优化损失函数还考虑了减小模型的复杂度。决策树生成学习局部的模型,而决策树剪枝学习整体的模型

分类回归树—CART

CART决策树的生成:递归的构建二叉决策树 

\min_{j,s}[\min_{c^{_{1}}}\sum_{x_{i}\in R_{1}(j,s)}(y_{i} - c_{1})^{2} + \min_{c_{2}}\sum_{x_{i}\in R_{2}(j,s)}(y_{i} - c_{2})^{2}]

回归树的生成:最小二乘回归树生成算法(平方误差最小化准则进行特征选择)

Gini(D,A) = \frac{|D_{1}|}{|D|}Gini(D_{1}) + \frac{|D2|}{|D|}Gini(D_{2})

分类树的生成:基尼系数(基尼系数最小化准则进行特征选择)

CART决策树剪枝:

1)形成一个子树序列

2)在子树序列中通过交叉验证选取最优子树

参考资料

【决策树算法】想快速学习决策树算法吗?美女姐姐用甜美声音为你讲解决策树 ID3 信息增益 C4.5 CART 快快点开学习吧_哔哩哔哩_bilibili

这个小姐姐的讲解思路很清晰!!!!可以去看她的讲解视频吖

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
决策树是一种常用的机器学习算法,用于解决分类和回归问题。其中,ID3C4.5和CART决策树的三种常见算法。 1. ID3算法(Iterative Dichotomiser 3): ID3算法是一种基于信息增益的决策树算法。它通过选择具有最大信息增益的特征来构建决策树。具体步骤如下: - 计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征。 - 根据划分特征的取值将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者没有更多特征可供选择。 2. C4.5算法: C4.5算法是ID3算法的改进版本,它使用信息增益比来选择划分特征。相比于ID3算法,C4.5算法考虑了特征取值的多样性,能够处理连续型特征。具体步骤如下: - 计算每个特征的信息增益比,选择信息增益比最大的特征作为当前节点的划分特征。 - 根据划分特征的取值将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者没有更多特征可供选择。 3. CART算法(Classification and Regression Trees): CART算法是一种用于分类和回归的决策树算法。它通过选择最优的划分特征和划分点来构建决策树。具体步骤如下: - 选择最优的划分特征和划分点,使得划分后的子集纯度最高(分类问题)或者方差最小(回归问题)。 - 根据划分特征和划分点将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者达到预定的树深度。 对于代码实现,由于篇幅限制无法提供完整代码,但你可以在各种编程语言中找到相关的开源实现。你可以搜索相关的库或者参考机器学习教材中的示例代码来了解具体实现细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值