决策树算法(一)——一些重要的数学概念
写在前面的话
趁着现在我还是高中数理化老师,偶尔兼职英语老师的时候赶紧抓紧时间写点有关计算机科学技术的东西。一来是表示我对计算机的热爱,二来,当然是最重要的咯,满足一下我强大的虚荣心。哈哈哈哈!想想高中数学物理化学老师在折腾计算机,是不是有种瞬间吊炸天的感觉。
这个系列我写了一个月了,之后会陆陆续续的放出来的。希望对大家有一点点帮助。如果您没有看懂我在写啥,那一定是我错了,讲的不够清楚。世界上没有什么知识点是难的,只是看你知识储备和理解力达到了相应的水平没有。至少我是这么认为的。
当然,您要是觉得我写的有啥不好的,使劲的喷,随便喷,带着愤怒的情绪狂喷都没有问题!把问题告诉我,让我有所进步,让大家一起进步,那真真是极好的!
1.背景知识
在我们谈论决策树的时候我们先来玩一个游戏好咯。
2016年是奥运年,我最喜欢的两个运动员,(内心戏:当然是女的咯。因为我也是妹子,哈哈哈。)一个当然是女王隆达罗西,还有一个就是伊辛巴耶娃咯。
好的,现在我们就来玩猜运动员的游戏。
我在心里想一个运动员的名字,比如说就是伊辛巴耶娃。然后你有20次的提问机会,但是我只能回答你是还是不是这两种可能。
我们可以这样对话:
你:男的?
我:不是
你:参加过往届奥运会?
我:是
你:参加过两次?
我:不是
你:参加过三次?
我:是
你:参加的是田赛
我:是
你:耶辛巴伊娃
我:恭喜你,答对了!
以上我们玩的这个过程就有一点点像决策树算法。
我们经常使用决策树处理分类问题,近年来,决策树也是经常使用的数据挖掘的算法。
决策树的概念是非常简单的,我们可以通过一个图形来快速的了解决策数。我用了《机器学习与实战》这本书的内容来讲解。如图1所示,下面的这个流程图就是一个决策树,正方形代表的是判断模块(decision block),椭圆形代表的是终止模块(terminating block),表示已经得出结论,可以终止运行,从判断模块引出的左右箭头称作分支(branch)
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)
推广一下
下面来举个例子