决策树的起源——Hunt算法

最早的决策树算法是由Hunt等人于1966年提出,Hunt算法是许多决策树算法的基础,包括ID3、C4.5和CART等,本文以Hunt算法为例介绍决策树算发的基本思想及决策树的一些设计问题。

Hunt算法

Hunt算法通过将训练记录相继划分为较纯的子集,以递归方式建立决策树。设Dt是与结点t相关联的训练记录集,而y = { y1, y2, …, yc}为类标号,Hunt算法的递归定义如下:
1.如果Dt中所有的记录都属于同一个类yt,则结点t是叶子结点,用yt标记;

2.如果Dt中包含多个类的记录,则选择一个属性测试条件,将记录划分为较小的子集。对于测试条件的每个输出,创建一个子女结点,并根据测试结果将Dt中的记录分布到子女结点中,然后对每个子女结点递归地调用该算法;

对于以上算法,如果属性值的每种组合都在训练集中出现,并且每种组合都具有唯一的类标号,则Hunt算法是有效的。但是但对于大多数的实际情况来讲,这一假设并不现实,因此,需要额外的条件来处理以下情况:
1.在第二步,算法所创建的子女结点可能为空,即不存在与这些结点相关联的记录。如果没有一个训练记录包含与这样的结点相关联的属性组合,这种情形就有可能发生。这时,该结点成为叶子结点,类标号为其父结点所关联记录集中类别个数最多的类别;

2.在第二步,如果与Dt相关联的所有记录都具有相同的属性值(类标号除外),则没有属性可用于进一步划分当前记录集,这时可以采用投票原则(少数服从多数)将当前结点强制为叶结点,其类标号为该结点所关联记录集中类别个数最多的类别;

决策树归纳的设计问题

由Hunt算法的基本思想,我们可以看到,决策树归纳的学习算法必须解决以下两个问题:

  • 如何分裂训练记录集?
    树增长的每次递归都必须要选择一个属性测试条件,将记录划分为更小的子集。为了更好的进行记录分割,算法必须为不同类型的属性指定测试条件的方法,并且提供评估每个测试条件优劣的客观标准;

  • 如何停止分裂?
    为了终止决策树的成长过程,一个可能的策略是分裂结点直到所有的记录都属于同一类,或者所有的记录都具有相同的属性值。尽管这这两个约束条件对于结束决策树成长是充分的,但是我们往往还需要其他的标准来提前停止树的生长过程;

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值