写在前面的话

趁着现在我还是高中数理化老师,偶尔兼职英语老师的时候赶紧抓紧时间写点有关计算机科学技术的东西。一来是表示我对计算机的热爱,二来,当然是最重要的咯,满足一下我强大的虚荣心。哈哈哈哈!想想高中数学物理化学老师在折腾计算机,是不是有种瞬间吊炸天的感觉。

这个系列我写了一个月了,之后会陆陆续续的放出来的。希望对大家有一点点帮助。如果您没有看懂我在写啥,那一定是我错了,讲的不够清楚。世界上没有什么知识点是难的,只是看你知识储备和理解力达到了相应的水平没有。至少我是这么认为的。

当然,您要是觉得我写的有啥不好的,使劲的喷,随便喷,带着愤怒的情绪狂喷都没有问题!把问题告诉我,让我有所进步,让大家一起进步,那真真是极好的!

1.背景知识

在我们谈论决策树的时候我们先来玩一个游戏好咯。 
2016年是奥运年,我最喜欢的两个运动员,(内心戏:当然是女的咯。因为我也是妹子,哈哈哈。)一个当然是女王隆达罗西,还有一个就是伊辛巴耶娃咯。

好的,现在我们就来玩猜运动员的游戏。

我在心里想一个运动员的名字,比如说就是伊辛巴耶娃。然后你有20次的提问机会,但是我只能回答你是还是不是这两种可能。

我们可以这样对话: 
你:男的? 
我:不是 
你:参加过往届奥运会? 
我:是 
你:参加过两次? 
我:不是 
你:参加过三次? 
我:是 
你:参加的是田赛 
我:是 
你:耶辛巴伊娃 
我:恭喜你,答对了!

以上我们玩的这个过程就有一点点像决策树算法。

我们经常使用决策树处理分类问题,近年来,决策树也是经常使用的数据挖掘的算法。

决策树的概念是非常简单的,我们可以通过一个图形来快速的了解决策数。我用了《机器学习与实战》这本书的内容来讲解。如图1所示,下面的这个流程图就是一个决策树,正方形代表的是判断模块(decision block),椭圆形代表的是终止模块(terminating block),表示已经得出结论,可以终止运行,从判断模块引出的左右箭头称作分支(branch)

这是一个假想的邮件分类系统。首先这个系统会检测发送邮件的域名地址,如果地址为myEmployer.com 则将邮件归类到“无聊时需要阅读的邮件”如果没有这个域名我们就检查邮件中的内容是不是包含了“曲棍球”的邮件。如果包含则把这些邮件放置在“需要及时处理的朋友邮件”,否则就把这些邮件归类到“无需阅读的垃圾邮件”

2.构造决策树

根据上面的描述我们已经发现构造决策树做分类的时候首要目的就是每次分类的时候都能找到最容易区分一个集合和另一个集合的特征。在上面例子中,我们首先就是查找邮件的域名,在第一次分类的时候,邮件的域名就是我们最重要的分类特征。

为了找到决定性的特征,划分出最好的结果,我们必须评估每个特征,完成测试之后,原始数据集就被划分为几个数据子集。根据我们挑选出的最佳特征,这些数据会被分成两类。我们分别检测这两类,如果类别相同则不需要再次划分,如果类别不同,我们要重复上面的步骤。就是在被划分出的子集当中在挑选其他的重要特征把这些数据在细分成其他的类别。

根据这个描述,我们可以很容易发现这个过程就是一个递归的过程,怎么找到这些最佳特征,我们要做的事情就需要了解一些数学概念。我们需要用到信息论的知识来划分数据集。

3.一些需要了解的数学概念

划分数据集的原则就是:将无序的数据变得更加有序。我们可以有多种方法来划分数据,在这里我们构建决策树算法使用的是信息论划分数据集,然后编写代码将理论应用到具体的数据集上,然后编写代码构建决策树。我们在组织杂乱无章的数据时使用信息论度量信息。
比如我给出一条信息:
我爱你1314.
这就是一条简单的信息,这个时候我们可以对这个信息做一些分类,比如说找出这句话中的动词,数字,以及代词,名词等。我们要知道的就是 信息处理就是将杂乱无章的信息用数理统计的方法表示出来。
在这里我们可以将这个信息分成 三类: 代词(名词),动词,以及数字,我们用X1表示代词,X2表示动词,X3表示数字,p(xi)表示的是这个分类在这个信息当中出现的概率。那么我们就可以将信息定义为:
高中毕业的人都知道吧,概率p(Xi)是一个分数,然后对数函数以2为基底,它是比1大的,如果幂是分数,基底是大于1的那个这个值是个负数。为了方便处理,前面添加负号。
信息熵,简称熵是用来表示信息的期望值得。

3.1 信息熵

根据百科词条的定义,我们先来看一下信息论中的一下基本概念
信息论:
信息论是运用概率论与数理统计的方法研究信息、信息熵、通信系统、数据传输、密码学、数据压缩等问题的应用数学学科。信息系统就是广义的通信系统,泛指某种信息从一处传送到另一处所需的全部设备所构成的系统。
1948年,香农提出了“信息熵”的概念,解决了对信息的量化度量问题。信息熵这个词是C.E.香农从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。
我们可以用信息熵来度量信息量的多少。
在给出信息熵的计算公式的时候,我想先说几个基本的概念,以便于你理解信息熵的计算公式。

3.2随机变量

我们可以先看下面的一些问题。 
某人射击一次,可能出现命中0环,命中1环…,命中10环等结果。即可能出现的结果可以由0,1,2,3,4,5,6,7,8,9,10这11个数来表示。

在某次的产品检验中,在可能含有次品的100件产品中任意抽取4件来检验,那么其中含有的次品可能的是0件,1件,2件,3件,4件,即可能出现的结果可以由0,1,2,3,4这5个数来表示。

我们把上面这些事件称为随机实验,随机实验想要得到的结果(例如射击一次命中的环数)可以用一个变量来表示的话,那么这样的变量就叫做随机变量(random variable)

随机变量的一些特征: 
1. 可用数表示 
2. 实验前可判断出所有可能取值 
3. 实验前不能判断具体取哪个值 
4. 所有可能值按照某种顺序列出

离散型随机变量 
随机变量的取值是可以一一列出的比如上面所说的射击事件

连续型随机变量 
那就是取值不能一一列出的咯,比如说一天内气温的变化量

推广: 
一般地,如果X是随机变量,若有Y=f(X),则Y也是随机变量

3.3数学期望

在概率论中,数学期望简称期望,通俗的说就是平均值,它表示的是随机变量的取值的平均水平。

计算的公式 
X1,X2,X3,……,Xn为这离散型随机变量,p(X1),p(X2),p(X3),……p(Xn)为这几个数据的概率函数。在随机出现的几个数据中p(X1),p(X2),p(X3),……p(Xn)概率函数就理解为数据X1,X2,X3,……,Xn出现的频率f(Xi).则: 
E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn) = X1*f1(X1) + X2*f2(X2) + …… + Xn*fn(Xn)

上面的这个看着有点恶心,我们来温故一下当年高中数学课本中的东东,分分钟暴露了年龄的数学课本啊,但是还是很喜欢

(在这里我们主要考虑离散型随机变量)

总而言之,数学期望就是随机变量的取值乘以在随机实验中这个随机变量取到的概率。

推广一下



下面来举个例子

如果你已经理解了数学期望,随机变量这些概念那么我们就来说说信息熵的计算。
都说了熵是表示信息的期望值,信息的期望值,信息的期望值,如果您已经看懂了数学期望怎么算,那么你应该会很容易理解信息熵会怎么计算。
还是刚才那个例子,我们给出了一个信息:我爱你1314,然后把这个信息分为三类,然后我们要计算这个信息的熵。
那是不是就要计算这个信息所有类别的可能值得数学期望了。
那么熵的公式就是下面这个样子的:
其中n表示的是这个信息被分为n类。

3.4 信息增益(information gain)

     在划分数据集之前之后信息发生的变化称为信息增益,知道如何计算信息增益,我们就可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。
     讲完这个我们现在应该要学会怎么计算信息增益了,下一章再讲吧。实在是打不动这么多字了,下一章我们就开始愉快的写代码了~

写在后面的话

你必须非常努力,才可以看起来毫不费力~

决策树算法(一)——一些重要的数学概念相关推荐

  1. 机器学习之决策树算法-概念和学习过程

    1.      概念 决策树是通过一系列规则对数据进行分类的过程,它提供一种在什么条件下会得到什么值的类似规则的方法.决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树. ...

  2. 决策树算法的原理(接地气版)

    ↑↑点击上方蓝字,N个G的惊喜 ❝ 决策树( )是一类很常见很经典的机器学习算法,既可以作为分类算法也可以作为回归算法.同时也适合许多集成算法,如 , ,以后会逐一介绍.本篇介绍一下决策树算法的原理. ...

  3. 一文详解决策树算法模型

    AI有道 一个有情怀的公众号 上文我们主要介绍了Adaptive Boosting.AdaBoost演算法通过调整每笔资料的权重,得到不同的hypotheses,然后将不同的hypothesis乘以不 ...

  4. 最常用的决策树算法(二)Random Forest、Adaboost、GBDT 算法

    决策树是一个非常常见并且优秀的机器学习算法,它易于理解.可解释性强,其可作为分类算法,也可用于回归模型.本文将分三篇介绍决策树,第一篇介绍基本树(包括 ID3.C4.5.CART),第二篇介绍 Ran ...

  5. 数据挖掘算法之决策树算法总结

    机器学习中,决策树是一个预测模型:它代表的是对象属性值与对象值之间的一种映射关系.树中每个节点表示某个对象,每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应具有上述属性值的子对象.决策树仅有单 ...

  6. ID3和C4.5分类决策树算法 - 数据挖掘算法(7)

    (2017-05-18 银河统计) 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来判断其可行性的决策分析方法,是直观运用概率分析的一种图解法.由于这种决策分支画 ...

  7. 决策树C4.5算法 c语言实现,数据挖掘十大经典算法(1) C4.5_决策树算法

    数据挖掘十大经典算法(1) C4.5_决策树算法 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...

  8. FlyAI小课堂:python机器学习笔记:深入学习决策树算法原理

    分类技术(或分类法)是一种根据输入数据建立分类模型的系统方法,分类法的例子包括决策分类法,基于规则的分类法,神经网络,支持向量机和朴素贝叶斯分类法.这些技术都使用一种学习算法(learning alg ...

  9. 信息增益率C语言,决策树算法在高职院校成绩分析中的应用研究的论文

    决策树算法在高职院校成绩分析中的应用研究的论文 摘 要:高职院校的学生的成绩是一项重要的数据,它不仅是对学生学习情况的评价,也是对教师教学质量的检查.本文研究了使用决策树算法对学生的成绩进行挖掘分析, ...

最新文章

  1. 记录一个粗心所导致的bug
  2. C# 中的委托和事件(转载)
  3. 数据中心操作运营贴士:确保生命安全
  4. 反思技术面试题目准备汇总链接汇总
  5. 重磅更新!YoloV4最新论文!解读yolov4框架
  6. Odoo10参考系列--混合而有用的类
  7. 配置sqlplus的AUTOTRACE
  8. 2017中国“互联网+”数字经济指数 | 腾讯研究院
  9. 员工入职是一连串事件(转)
  10. 安卓一键ROOT权限获取软件排行榜
  11. 为什么Java程序员工资高?
  12. Snakemake报错Outputs of incorrect type
  13. 镁光256Gb NAND Flash芯片介绍
  14. linux kernel panic not syncing 永久解决的方案
  15. 【Linux编程】三分钟让你学会Linux下用户密码更改
  16. Navicat连接mysql报错is not allowed to connect to this MySQL
  17. TiDB 如何在 LVS FULL NAT 模式下显示客户端真实 IP
  18. 从0开始的技术美术之路(十六)延迟渲染
  19. 《安全协议:理论与实践》(冯登国)读书笔记---一般存取结构上的秘密共享协议
  20. Python 变量类型,关于变量的实现和原理

热门文章

  1. 一段关于Unix与 Linux的暗黑史
  2. 某leader求助:周六晚上拉下属开会,被下属怀孕的老婆公然大骂,怎么办?网友:活该!...
  3. 一个MySQL锁和面试官大战三十回合,我霸中霸!
  4. 小学生也能看懂的微服务节点判活难题
  5. 低代码、无代码?深度解读硅谷新趋势
  6. 小白搞懂了GC全过程,全靠阿里专家12张图
  7. 一个爬虫的故事:这是人干的事儿?
  8. 深入理解 Java 虚拟机 - 你了解 GC 算法原理吗
  9. 特朗普推文的文本分析
  10. Android nginx php,Android pad中有关nginx,mysql,php的集成问题汇总