《19决策树与随机森林》由会员分享,可在线阅读,更多相关《19决策树与随机森林(60页珍藏版)》请在金锄头文库上搜索。
1、决策树与随机森林,邹博 北京10月机器学习班 & ML在线公开课第1期 2015年1月11日,2/60,目标任务与主要内容,复习信息熵熵、联合熵、条件熵、互信息决策树学习算法信息增益ID3、C4.5、CARTBagging与随机森林的思想投票机制分类算法的评价指标ROC曲线和AUC值,3/60,决策树的实例(Weka自带测试数据),注:Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品-Clementine )的,基于JAVA环境下开源的机器学习(machi
2、ne learning)以及数据挖掘(data minining)软件。它和它的源代码可在其官方网站下载。,4/60,复习:熵,将离散随机变量X的概率分布为P(X=xi),则定义熵为:若P为连续随机变量,则概率分布变成概率密度函数,求和符号变成积分符号。在不引起混淆的情况下,下面谈到的“概率分布函数”,其含义是:1、若X为离散随机变量,则该名称为概率分布函数;2、若X为连续随机变量,则该名称为概率密度函数。,5/60,对熵的理解,熵是随机变量不确定性的度量,不确定性越大,熵值越大;若随机变量退化成定值,熵为0均匀分布是“最不确定”的分布熵其实定义了一个函数(概率分布函数)到一个值(信息熵)的映
3、射。P(x)H (函数数值)泛函回忆一下关于“变分推导”章节中对于泛函的内容。,6/60,联合熵和条件熵,两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示H(X,Y) H(Y)(X,Y)发生所包含的信息熵,减去Y单独发生包含的信息熵在Y发生的前提下,X发生“新”带来的信息熵该式子定义为Y发生前提下,X的熵:条件熵H(X|Y) = H(X,Y) H(Y),7/60,推导条件熵的定义式,8/60,相对熵,相对熵,又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵
4、是说明:相对熵可以度量两个随机变量的“距离”在“贝叶斯网络”、“变分推导”章节使用过一般的,D(p|q) D(q|p)D(p|q)0、 D(q|p) 0 提示:凸函数中的Jensen不等式,9/60,互信息,两个随机变量X,Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。I(X,Y)=D(P(X,Y) | P(X)P(Y),10/60,计算H(X)-I(X,Y),11/60,整理得到的等式,H(X|Y) = H(X,Y) - H(Y)条件熵定义H(X|Y) = H(X) - I(X,Y)根据互信息定义展开得到有些文献将I(X,Y)=H(Y) H(Y|X)作为互信息的定义式对偶式H(Y
5、|X)= H(X,Y) - H(X)H(Y|X)= H(Y) - I(X,Y)I(X,Y)= H(X) + H(Y) - H(X,Y)有些文献将该式作为互信息的定义式试证明:H(X|Y) H(X) ,H(Y|X) H(Y),12/60,强大的Venn图:帮助记忆,13/60,决策树示意图,14/60,决策树 (Decision Tree),决策树是一种树型结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶结点代表一种类别。决策树学习是以实例为基础的归纳学习。决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为
6、零,此时每个叶节点中的实例都属于同一类。,15/60,决策树学习算法的特点,决策树学习算法的最大优点是,它可以自学习。在学习的过程中,不需要使用者了解过多背景知识,只需要对训练实例进行较好的标注,就能够进行学习。显然,属于有监督学习。从一类无序、无规则的事物(概念)中推理出决策树表示的分类规则。,16/60,决策树学习的生成算法,建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有一下三种算法。ID3C4.5CART,17/60,信息增益,概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。信
7、息增益表示得知特征A的信息而使得类X的信息的不确定性减少的程度。定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:g(D,A)=H(D) H(D|A)显然,这即为训练数据集D和特征A的互信息。,18/60,基本记号,设训练数据集为D,|D|表示其容量,即样本个数。设有K个类Ck,k=1,2,K,|Ck|为属于类Ck的样本个数。k|Ck|=|D|。设特征A有n个不同的取值a1,a2an,根据特征A的取值将D划分为n个子集D1,D2,Dn,|Di|为Di的样本个数,i|Di|=D。记子集Di中属于类Ck的样本的集合为
8、Dik,|Dik|为Dik的样本个数。,19/60,信息增益的计算方法,计算数据集D的经验熵计算特征A对数据集D的经验条件熵H(D|A)计算信息增益:g(D,A)=H(D) H(D|A),20/60,经验条件熵H(D|A),21/60,其他目标,信息增益率:gr(D,A) = g(D,A) / H(A)基尼指数:,22/60,讨论(一家之言),考察基尼指数的图像、熵、分类误差率三者之间的关系将f(x)=-lnx在x0=1处一阶展开,忽略高阶无穷小,得到f(x)1-x,23/60,三种决策树学习算法,适应信息增益来进行特征选择的决策树学习过程,即为ID3决策。所以如果是取值更多的属性,更容易使得
9、数据更“纯” ,其信息增益更大,决策树会首先挑选这个属性作为树的顶点。结果训练出来的形状是一棵庞大且深度很浅的树,这样的划分是极为不合理的。 C4.5:信息增益率 gr(D,A) = g(D,A) / H(A)CART:基尼指数总结:一个属性的信息增益越大,表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强。,24/60,决策树的例子,对于下面的数据,希望分割成红色和绿色两个类,25/60,决策树的生成过程,26/60,决策树的生成过程,27/60,决策树的生成过程,28/60,决策树的生成过程,29/60,决策树的生成过程,30/60,决策树的生成过程,31/6
10、0,决策树的生成过程,32/60,决策树的生成过程,33/60,决策树的生成过程,34/60,决策树的过拟合,决策树对训练属于有很好的分类能力,但对未知的测试数据未必有好的分类能力,泛化能力弱,即可能发生过拟合现象。剪枝随机森林,35/60,Bootstraping,Bootstraping的名称来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法。注:Bootstrap本义是指高靴子口后面的悬挂物、小环、带子,是穿靴子时用手向上拉的工具。“pull up by your own bootstraps”即“通过拉
11、靴子让自己上升”,意思是“不可能发生的事情”。后来意思发生了转变,隐喻“不需要外界帮助,仅依靠自身力量让自己变得更好”。,36/60,Bagging的策略,bootstrap aggregation 从样本集中重采样(有重复的)选出n个样本在所有属性上,对这n个样本建立分类器(ID3、C4.5、CART、SVM、Logistic回归等)重复以上两步m次,即获得了m个分类器将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类,37/60,Another description of Bagging,38/60,Bagging,39/60,Bagging的结果,40/60,
12、随机森林,随机森林在bagging基础上做了修改。从样本集中用Bootstrap采样选出n个样本;从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;重复以上两步m次,即建立了m棵CART决策树这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类,41/60,应用实例:Kinect,Real-Time Human Pose Recognition in Parts from Single Depth Images, Jamie Shotton etc,2001,42/60,随机森林/Bagging和决策树的关系,当然可以使用决策树作为基本分类器但也可以使用SV
13、M、Logistic回归等其他分类器,习惯上,这些分类器组成的“总分类器”,仍然叫做随机森林。举例,43/60,回归问题,离散点是样本集合,描述了臭氧(横轴)和温度(纵轴)的关系试拟合二者的变化曲线,44/60,使用Bagging,算法过程做100次bootstrap,每次得到的数据Di,Di的长度为N对于每一个Di,使用局部回归(LOESS)拟合一条曲线(图中灰色线是其中的10条曲线)将这些曲线取平均,即得到红色的最终拟合曲线显然,红色的曲线更加稳定,并且没有过拟合明显减弱,记原始数据为D,长度为N(即图中有N个离散点),45/60,附:局部加权线性回归,LWR:Locally Weight
14、ed linear RegressionLOESS : LOcal regrESSion,46/60,附:线性回归与局部加权回归,黑色是样本点红色是线性回归曲线绿色是局部加权回归曲线,47/60,投票机制,简单投票机制一票否决(一致表决)少数服从多数有效多数(加权)阈值表决贝叶斯投票机制,48/60,贝叶斯投票机制,简单投票法假设每个分类器都是平等的。在实际生活中,我们听取一个人的意见,会考虑这个人过去的意见是否有用,从而加大或者减少权值。贝叶斯投票机制基于每个基本分类器在过去的分类表现设定一个权值,然后按照这个权值进行投票。,49/60,投票机制举例,假定有N个用户可以为X个电影投票(假定投
15、票者不能给同一电影重复投票),投票有1、2、3、4、5星共5档。如何根据用户投票,对电影排序?本质仍然是分类问题:对于某个电影,有N个决策树,每个决策树对该电影有1个分类(1、2、3、4、5类),求这个电影应该属于哪一类(可以是小数:分类问题变成了回归问题),50/60,一种可能的方案,WR:加权得分(weighted rating)R:该电影的用户投票的平均得分(Rating)C:所有电影的平均得分v:该电影的投票人数(votes)m:排名前250名的电影的最低投票数根据总投票人数,250可能有所调整按照v=0和m=0分别分析,51/60,评价指标,以下近考虑二分类问题,即将实例分成正类(p
16、ositive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True negative),正类被预测成负类则为假负类(false negative)。,52/60,混淆矩阵(Confusion Matrix),TP:正确肯定实例是正例,划分为正例FN:漏报实际是正例,却划分成了负例FP:误报实际是负例,却划分成了正例TN:正确拒绝实例是负例,划分为负例,53/60,误分率Error Rate:(FN+FP) / C准确度Accuracy :(TP+TN) / C查准率Recall:TP / (TP + FP)假正类率(False Positive Rate, FPR):FP/ (FP + TN)虚报概率,代价(costs)真正类率(true positive rate ,TPR):TP/(TP+FN)击中概率,收益(benefits)思考:可否按此模式,定义“真负类率TNR”?,