0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

建立决策树的逻辑

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2020-10-10 10:44 次阅读

一个小故事

zenRRan二十出头了,到了婚配的年龄啦。又因为家是名门望族,所以一堆人抢着想来应聘配偶的职位。但是zenRRan比较挑剔,必须达到他的要求才能有机会成为他的另一半,要求为:

1. 性别女,非女性不要

于是刷刷刷走了一半人,剩下的全部为女性。

2.身高必须要在150-165cm

于是又走了一堆人,剩下的为160-165cm之间的女生。

3.性格要温柔贤惠

听到这些,又走了一些人,最后留下的极为最后的应聘候选人。

上述过程可以用树来表示:

像上面的这样的二叉树状决策在我们生活中很常见,而这样的选择方法就是决策树。机器学习的方法就是通过平时生活中的点点滴滴经验转化而来的。

建立决策树的逻辑

正如上述树状图所示,我们最终会通过特征:

性别,身高,性格

得到了4种分类结果,都存在于叶子节点。

非女生,身高不符合的女生,身高符合性格不符合的女生,都符合的最佳候选人。

现在我们来回想下上面的建立决策的流程:

首先在一群给定数据(应聘者)中,我们先通过一个特征(性别)来进行二分类。当然选取这个特征也是根据实际情况而定的,比如zenRRan选取第一个条件为性别的原因是,来的男的太多了,比例占的有点大,所以先给他分成类放到一边,剩下的更加好分类而已。

然后,对叶子节点(那些还想继续分类的节点们)继续进行上述的流程。

那么怎么选取特征作为当前的分类依据呢?有两种方法:

信息熵和基尼系数。

信息熵

熵这个概念想必大家都不陌生,熵用来表示数据的确定性程度。研究一个词,就要从他的来源说起,熵,来自热动力学,表示原子或者一个事物的稳定程度,温度越高,原子越活跃,越不稳定;反而温度越低,就越稳定,越保持不动。所以慢慢的这个概念被用到各个方向,也就有了新的定义词汇,但是它的本意没变,就是稳定程度大小的表示。

那么在决策树里面,我们用的是一种熵,信息熵,来表示类别的稳定程度。

公式为:

注:p为一个类的占比

什么意思呢?具体用数字表示下:

比如一个分类结果由三个类组成,占比为1/3 1/31/3,那么它们的信息熵为:

如果占比为1/10 2/10 7/10,那么它的信息熵为:

那再举一个极端情况,也就是我们想要得到的类,只包含一种情况,其他的比例为0,那么比如占比情况为:1 0 0,那么它的信息熵为:

我们会发现一个分类结果里,里面的类别比例越是接近,信息熵也就越大,反之越是趋向于一个值,越是小,会达到0。

如果将所有的情况考虑在内的话,就能绘成一个图(为了好画,以该分好的类别里有两种事物为例):

我们会发现,当占比为0.5的时候,也就是另一个事物的占比也是0.5的时候信息熵最高,当倾向于一个事物的时候,信息熵最小,无限接近并达到0。

为什么都占比一样的时候信息熵最大呢?也就是说最不稳定呢?因为当每个事物都占比一样的时候,一个小事物进来,不清楚它到底属于哪一类;如果只有一类事物或者一类事物居多数,那么也就比较明确该属于哪类,也就稳定,确定了。

那么怎么用呢?

我们通过计算机分类,因为有很多种分类情况,不是每一次分类都是直接将同一类分到一个类别里,而是将该分好的两个类的信息熵总和最小为依据,不断地通过暴力寻找最佳选择。然后递归进行对分好类的数据进行再分类。

基尼系数

基尼系数和信息熵在这里具有同样的性质。先看看它的公式:

公式看不出什么特色之处,就继续用数字展示下:

比如依然是三分类,类别占比为1/3 1/3 1/3,基尼系数为:

类别占比为1/10 2/10 7/10,基尼系数为:

如果是极端情况下占比为1 0 0,那么基尼系数为;

我们根据公式其实就能看出来,平方的函数为凸函数,而该公式在都相等的时候值最大。

代码实现

再重说下流程:

通过对每个特征进行尝试分类,记录当前分类最小的信息熵(或基尼系数)的特征为当前分类结果。

选取一些点,初始化数据:

X为二维平面的数据点,Y为类别。

数据点分布情况:

信息熵函数:

基尼系数函数:

二者使用一个即可。

下面是一个分类核心的流程:

文字描述为:

对数据点的特征0维进行尝试分类,先按照0维数据排序,然后取每相邻的中点值,然后以0维该值分界线,处于分界线两侧的数据分别求信息熵(或基尼系数),如果比之前的小,这就保存该值和当前维度。然后选取第1维进行相同操作,最终的最小信息熵(或基尼系数)最小对应的值为本次分类的结果。

但是这个仅仅是一层分类,如果还子节点还有要分类的数据,继续上述操作即可。

分类代码:

分类效果流程图:

决策树第一层分类结果为:

当前线为最佳值,1维的数据就是分过的,但是没有当前的值好,也就没显示。

现在已经分出了两类,左边的红色和右边的绿色+蓝色。那么还要对上述的右边进行分类,获取该数据,并且继续进行分类,分类流程图为:

最终得出的分类结果为上述两条线。其中粉色为第一层分类,紫色为第二层分类。

批判性思维看决策树

看到上述的分类结果,其实你心里也想到了决策树的缺点了,就是分类总是横平竖直的,不能是曲线。

比如

该四个数据的分类最佳理想条件下应该为上述紫色线条,但是决策树的结果为;

如果存在数据在:

明明应该属于蓝色点的,但是被划分到红色点里。

所以可以看出,决策树对数据的要求是是苛刻的。

另一个问题是,决策树的学习问题,从上述代码实现过程能够看出来,可以说是暴力求解了。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二叉树
    +关注

    关注

    0

    文章

    74

    浏览量

    12324
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132562
  • 决策树
    +关注

    关注

    3

    文章

    96

    浏览量

    13548

原文标题:【机器学习】决策树的理论与实践

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    逻辑异或和逻辑或的比较分析

    逻辑异或(Exclusive OR,简称XOR)和逻辑或(OR)是数字逻辑和编程中两种基本的逻辑运算,它们各自具有独特的功能和应用场景。以下是对逻辑
    的头像 发表于 11-19 09:48 314次阅读

    逻辑异或的定义和应用 逻辑异或与逻辑与的区别

    逻辑异或(XOR,Exclusive OR)是一种二进制运算,其结果取决于两个输入值是否不同。如果两个输入值相同,结果为0(假);如果两个输入值不同,结果为1(真)。逻辑异或在计算机科学、数字逻辑
    的头像 发表于 11-19 09:40 421次阅读

    简单认识逻辑电路的用途

    在数字电子的世界里,每一个决策、每一条指令、每一次数据处理,都离不开CMOS逻辑IC的掌控。CMOS逻辑IC大致包括两种逻辑,即组合逻辑和时
    的头像 发表于 11-01 15:44 277次阅读

    LSM6DSV16X基于MLC智能笔动作识别(2)----MLC数据采集

    MLC 是“机器学习核心”(Machine Learning Core)的缩写。在 LSM6DSV16X 传感器 中,MLC 是一种嵌入式功能,它使传感器能够直接运行基于决策树的机器学习算法。通过
    的头像 发表于 10-22 10:02 748次阅读
    LSM6DSV16X基于MLC智能笔动作识别(2)----MLC数据采集

    什么是默克尔(Merkle Tree)?如何计算默克尔根?

    01 默克尔的概念 默克尔(Merkle Tree)是一种特殊的二叉,它的每个节点都存储了一个数据块的哈希值。哈希值是一种可以将任意长度的数据转换为固定长度的字符串的算法,它具有唯一性和不可
    的头像 发表于 09-30 18:22 825次阅读
    什么是默克尔<b class='flag-5'>树</b>(Merkle Tree)?如何计算默克尔根?

    数字逻辑怎么把逻辑图画成电路图

    将数字逻辑中的逻辑图画成电路图是一个涉及多个步骤的过程,以下是一个详细的指导: 一、理解逻辑图 首先,需要深入理解逻辑图所表达的逻辑功能。
    的头像 发表于 08-21 17:36 828次阅读

    数字系统的核心:逻辑门电路

    数字逻辑门是一种电子电路,它根据输入端的数字信号组合做出逻辑决策。数字逻辑门可以有多个输入,例如输入A、B、C、D等,但通常仅具有一个数字输出(Q)。单个
    的头像 发表于 07-16 10:04 1198次阅读
    数字系统的核心:<b class='flag-5'>逻辑</b>门电路

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习算法原理,包括线性回归、逻辑回归、支持向量机(SVM)、决策树和K近邻(KNN)算法,探讨它们的理论基础、算法流程、优缺点及应用场景
    的头像 发表于 07-02 11:25 987次阅读

    原理图设计里两颗重要的(国产EDA)

    原理图里面两颗重要的,那就是元件和网络,作为EDA工具中的重要视图和概念,虽然看似枯燥,但它们扮演着非常重要的角色,它们为电路图的层次化结构提供了有力支撑。想象一个大型的电路设计项目,就像一个
    的头像 发表于 05-29 17:47 736次阅读
    原理图设计里两颗重要的<b class='flag-5'>树</b>(国产EDA)

    崔东:进口车增量助力消费增长,年内潜力巨大

    崔东指出,随着我国汽车产业的发展壮大以及电动化转型带来的市场需求变化,燃油车需求逐渐萎缩,进口燃油车需求亦随之降低。鉴于国际关系日益复杂,他建议应提前规划并建立多元化的进口模式,以保持进口车市场的稳定。
    的头像 发表于 05-27 10:30 478次阅读

    集线器是什么?集线器内部构造

    集线器内部采用了电器互联,当维护LAN的环境是逻辑总线或环型结构时,完全可以用集线器建立一个物理上的星型或型网络结构。
    的头像 发表于 03-22 15:22 3835次阅读
    集线器是什么?集线器内部构造

    什么是随机森林?随机森林的工作原理

    随机森林使用名为“bagging”的技术,通过数据集和特征的随机自助抽样样本并行构建完整的决策树。虽然决策树基于一组固定的特征,而且经常过拟合,但随机性对森林的成功至关重要。
    发表于 03-18 14:27 3552次阅读
    什么是随机森林?随机森林的工作原理

    异或门的逻辑符号和逻辑电路组成

    异或门(XOR gate)是数字逻辑电路中常用的一种逻辑门。它的作用是对两个输入信号进行逻辑运算,输出一个结果。
    的头像 发表于 02-04 14:18 1w次阅读
    异或门的<b class='flag-5'>逻辑</b>符号和<b class='flag-5'>逻辑</b>电路组成

    组合逻辑电路之与或逻辑

    逻辑电路由多个逻辑门组成且不含存储电路,对于给定的输入变量组合将产生确定的输出,则这种逻辑电路称为组合逻辑电路。
    的头像 发表于 02-04 11:46 1679次阅读
    组合<b class='flag-5'>逻辑</b>电路之与或<b class='flag-5'>逻辑</b>

    MCP251X can驱动移植nuc980采样用设备配置时,中断如何配置设备?

    MCP251X can驱动移植nuc980 采样用设备配置时,中断如何配置设备? spi0: spi@b0061000 { status = \"okay\"
    发表于 01-17 06:43