决策树算法(一)——一些重要的数学概念
写在前面的话
趁着现在我还是高中数理化老师,偶尔兼职英语老师的时候赶紧抓紧时间写点有关计算机科学技术的东西。一来是表示我对计算机的热爱,二来,当然是最重要的咯,满足一下我强大的虚荣心。哈哈哈哈!想想高中数学物理化学老师在折腾计算机,是不是有种瞬间吊炸天的感觉。
这个系列我写了一个月了,之后会陆陆续续的放出来的。希望对大家有一点点帮助。如果您没有看懂我在写啥,那一定是我错了,讲的不够清楚。世界上没有什么知识点是难的,只是看你知识储备和理解力达到了相应的水平没有。至少我是这么认为的。
当然,您要是觉得我写的有啥不好的,使劲的喷,随便喷,带着愤怒的情绪狂喷都没有问题!把问题告诉我,让我有所进步,让大家一起进步,那真真是极好的!
1.背景知识
在我们谈论决策树的时候我们先来玩一个游戏好咯。
2016年是奥运年,我最喜欢的两个运动员,(内心戏:当然是女的咯。因为我也是妹子,哈哈哈。)一个当然是女王隆达罗西,还有一个就是伊辛巴耶娃咯。
好的,现在我们就来玩猜运动员的游戏。
我在心里想一个运动员的名字,比如说就是伊辛巴耶娃。然后你有20次的提问机会,但是我只能回答你是还是不是这两种可能。
我们可以这样对话:
你:男的?
我:不是
你:参加过往届奥运会?
我:是
你:参加过两次?
我:不是
你:参加过三次?
我:是
你:参加的是田赛
我:是
你:耶辛巴伊娃
我:恭喜你,答对了!
以上我们玩的这个过程就有一点点像决策树算法。
我们经常使用决策树处理分类问题,近年来,决策树也是经常使用的数据挖掘的算法。
决策树的概念是非常简单的,我们可以通过一个图形来快速的了解决策数。我用了《机器学习与实战》这本书的内容来讲解。如图1所示,下面的这个流程图就是一个决策树,正方形代表的是判断模块(decision block),椭圆形代表的是终止模块(terminating block),表示已经得出结论,可以终止运行,从判断模块引出的左右箭头称作分支(branch)
这是一个假想的邮件分类系统。首先这个系统会检测发送邮件的域名地址,如果地址为myEmployer.com 则将邮件归类到“无聊时需要阅读的邮件”如果没有这个域名我们就检查邮件中的内容是不是包含了“曲棍球”的邮件。如果包含则把这些邮件放置在“需要及时处理的朋友邮件”,否则就把这些邮件归类到“无需阅读的垃圾邮件”
2.构造决策树
根据上面的描述我们已经发现构造决策树做分类的时候首要目的就是每次分类的时候都能找到最容易区分一个集合和另一个集合的特征。在上面例子中,我们首先就是查找邮件的域名,在第一次分类的时候,邮件的域名就是我们最重要的分类特征。
为了找到决定性的特征,划分出最好的结果,我们必须评估每个特征,完成测试之后,原始数据集就被划分为几个数据子集。根据我们挑选出的最佳特征,这些数据会被分成两类。我们分别检测这两类,如果类别相同则不需要再次划分,如果类别不同,我们要重复上面的步骤。就是在被划分出的子集当中在挑选其他的重要特征把这些数据在细分成其他的类别。
根据这个描述,我们可以很容易发现这个过程就是一个递归的过程,怎么找到这些最佳特征,我们要做的事情就需要了解一些数学概念。我们需要用到信息论的知识来划分数据集。
3.一些需要了解的数学概念
3.1 信息熵
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)
上面的这个看着有点恶心,我们来温故一下当年高中数学课本中的东东,分分钟暴露了年龄的数学课本啊,但是还是很喜欢
总而言之,数学期望就是随机变量的取值乘以在随机实验中这个随机变量取到的概率。
推广一下
下面来举个例子
3.4 信息增益(information gain)
写在后面的话
决策树算法(一)——一些重要的数学概念相关推荐
- 机器学习之决策树算法-概念和学习过程
1. 概念 决策树是通过一系列规则对数据进行分类的过程,它提供一种在什么条件下会得到什么值的类似规则的方法.决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树. ...
- 决策树算法的原理(接地气版)
↑↑点击上方蓝字,N个G的惊喜 ❝ 决策树( )是一类很常见很经典的机器学习算法,既可以作为分类算法也可以作为回归算法.同时也适合许多集成算法,如 , ,以后会逐一介绍.本篇介绍一下决策树算法的原理. ...
- 一文详解决策树算法模型
AI有道 一个有情怀的公众号 上文我们主要介绍了Adaptive Boosting.AdaBoost演算法通过调整每笔资料的权重,得到不同的hypotheses,然后将不同的hypothesis乘以不 ...
- 最常用的决策树算法(二)Random Forest、Adaboost、GBDT 算法
决策树是一个非常常见并且优秀的机器学习算法,它易于理解.可解释性强,其可作为分类算法,也可用于回归模型.本文将分三篇介绍决策树,第一篇介绍基本树(包括 ID3.C4.5.CART),第二篇介绍 Ran ...
- 数据挖掘算法之决策树算法总结
机器学习中,决策树是一个预测模型:它代表的是对象属性值与对象值之间的一种映射关系.树中每个节点表示某个对象,每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应具有上述属性值的子对象.决策树仅有单 ...
- ID3和C4.5分类决策树算法 - 数据挖掘算法(7)
(2017-05-18 银河统计) 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来判断其可行性的决策分析方法,是直观运用概率分析的一种图解法.由于这种决策分支画 ...
- 决策树C4.5算法 c语言实现,数据挖掘十大经典算法(1) C4.5_决策树算法
数据挖掘十大经典算法(1) C4.5_决策树算法 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...
- FlyAI小课堂:python机器学习笔记:深入学习决策树算法原理
分类技术(或分类法)是一种根据输入数据建立分类模型的系统方法,分类法的例子包括决策分类法,基于规则的分类法,神经网络,支持向量机和朴素贝叶斯分类法.这些技术都使用一种学习算法(learning alg ...
- 信息增益率C语言,决策树算法在高职院校成绩分析中的应用研究的论文
决策树算法在高职院校成绩分析中的应用研究的论文 摘 要:高职院校的学生的成绩是一项重要的数据,它不仅是对学生学习情况的评价,也是对教师教学质量的检查.本文研究了使用决策树算法对学生的成绩进行挖掘分析, ...
最新文章
- 记录一个粗心所导致的bug
- C# 中的委托和事件(转载)
- 数据中心操作运营贴士:确保生命安全
- 反思技术面试题目准备汇总链接汇总
- 重磅更新!YoloV4最新论文!解读yolov4框架
- Odoo10参考系列--混合而有用的类
- 配置sqlplus的AUTOTRACE
- 2017中国“互联网+”数字经济指数 | 腾讯研究院
- 员工入职是一连串事件(转)
- 安卓一键ROOT权限获取软件排行榜
- 为什么Java程序员工资高?
- Snakemake报错Outputs of incorrect type
- 镁光256Gb NAND Flash芯片介绍
- linux kernel panic not syncing 永久解决的方案
- 【Linux编程】三分钟让你学会Linux下用户密码更改
- Navicat连接mysql报错is not allowed to connect to this MySQL
- TiDB 如何在 LVS FULL NAT 模式下显示客户端真实 IP
- 从0开始的技术美术之路(十六)延迟渲染
- 《安全协议:理论与实践》(冯登国)读书笔记---一般存取结构上的秘密共享协议
- Python 变量类型,关于变量的实现和原理
热门文章
- 一段关于Unix与 Linux的暗黑史
- 某leader求助:周六晚上拉下属开会,被下属怀孕的老婆公然大骂,怎么办?网友:活该!...
- 一个MySQL锁和面试官大战三十回合,我霸中霸!
- 小学生也能看懂的微服务节点判活难题
- 低代码、无代码?深度解读硅谷新趋势
- 小白搞懂了GC全过程,全靠阿里专家12张图
- 一个爬虫的故事:这是人干的事儿?
- 深入理解 Java 虚拟机 - 你了解 GC 算法原理吗
- 特朗普推文的文本分析
- Android nginx php,Android pad中有关nginx,mysql,php的集成问题汇总