机器学习(5)——决策树(上)原理

Decision tree

决策树是机器学习中一种基本的分类和回归算法,是依托于策略抉择而建立起来的树。其主要优点是模型具有可读性,分类速度快,易于理解。决策树的思想主要来源于Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及有Breiman等人在1984年提出的CART算法。由于本章内容较多,将分两篇介绍决策树的原理和算法实现。

1.什么是决策树

决策树简单来说就是带有判决规则(if-then)的一种树,可以依据树中的判决规则来预测未知样本的类别和值。用一个网上通俗易懂的例子(相亲)来说明:

  • 女儿:年纪多大了?
  • 母亲:26
  • 女儿:长相如何?
  • 母亲:挺帅的
  • 女儿:收入如何?
  • 母亲:不算很高,中等情况
  • 女儿:是公务员不?
  • 母亲:是,在税务局上班
  • 女儿:那好,我去见见

    这个女孩的在决定是否去相亲的过程就是一个典型的分类决策过程。相当于通过年纪、长相、收入和是否公务员等标准来决定是否去相亲, 其决策过程可以用下面的决策树来表示:
    这里写图片描述
    简单来说,就是女孩会依据一定的规则来选择是否相亲。而且如果她事先将这个规则告诉自己的母亲,母亲就可以直接依据这个分类规则知道女儿是否想去参加这个相亲,即分类结果的

2.决策树模型和学习

在了解决策树的一个直观定义后,我们来看在数学上如何表达这种分类方法。
定义: 决策树是一个属性结构的预测模型,代表对象属性和对象值之间的一种映射关系。它又节点(node)和有向边(directed edge)组成,其节点有两种类型:内节点(internal node)和叶节点(leaf node),内部节点表示一个特征或属性,叶节点表示一个类。
如上图所示的相亲例子,蓝色的椭圆内节点表示的是对象的属性,橘黄色的矩形叶节点表示分类结果(是否相亲),有向边上的值则表示对象每个属性或特征中可能取的值。
决策树的学习本质上是从训练集中归纳出一组分类规则,得到与数据集矛盾较小的决策树,同时具有很好的泛化能力。决策树学习的损失函数通常是正则化的极大似然函数,通常采用启发式方法,近似求解这一最优化问题。
决策树学习算法包含特征选择、决策树生成与决策树的剪枝。决策树表示的是一个条件概率分布,所以深浅不同的决策树对应着不同复杂程度的概率模型。决策树的生成对应着模型的局部选择(局部最优),决策树的剪枝对应着全局选择(全局最优)。决策树常用的算法有ID3,C4.5,CART,下面通过一个简单的例子来分别介绍这几种算法。

这里写图片描述

上图是一个比较典型的决策树分类用的贷款申请样本数据集:样本特征 x(i) 的类型有年龄是否有工作、是否有房子和信贷情况,样本类别 y(i) 取值是两类是、否,最终的分类结果就是根据样本的特征来预测是否给予申请人贷款。在介绍算法之前,我们先介绍几个相关的概念:

  • 奥卡姆剃刀定律(Occam’s Razor, Ockham’sRazor)又称“奥康的剃刀”,是由14世纪逻辑学家、圣方济各会修士奥卡姆的威廉(William of Occam,约1285年至1349年)提出。这个原理称为“如无必要,勿增实体”,即“简单有效原理”。该定律在算法结构、机器学习等程序设计中有广泛的应用,在吴军所著的《数学之美》中也多次提到google大牛在设计算法时会优先考虑该准则。决策树的构建也是如此,越是小型的决策树越是有性能优势。
  • 信息熵 H(X) 信息熵是香农在1948年提出来量化信息的信息量的。熵的定义如下:
    H(X)=i=1npilogpi

    其中,X表示的是该事件取的有限个值的离散随机变量, pi 则是每个随机变量在整个事件中的概率。如上图所示,没分类前是否贷款的信息熵为: H(X)=615log615915log915=0.971 熵的大小就表明了随机变量的不确定性。比如如果给这15个人都贷款,即贷款结果都是是,那么信息熵则为: H(X)=1515log1515=0 ,即信息是确定的。分类的最终目的就是使信息熵最小,即通过特征可以最大概率的确定事件。
  • 条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性,定义为:
    H(Y|X)=i=1npiH(Y|X=xi)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值