通俗易懂03决策树DecisionTree
视频详解:03机器学习决策树DecisionTree,小白入门决策树:
决策树(decisiontree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
构建树的原则
我们构建一棵决策树的基本想法就是,我们希望决策树每个叶子节点包含的样本尽可能属于同一个类别,即结点的纯度越来越高决策树划分选择的方法
根据构建树的原则来看,即使得每个结点的纯度尽可能小,那么我们需要一些指标评价纯度这个概念。信息熵和基尼指数是两个常用的指标。决策树算法1、熵(Entropy)
信息熵(informationentropy)是度量样本集合纯度的常用指标;
在信息论与概率统计中,熵是表示随机变量不确定性的度,熵越大,随机变量的不确定性就越大,反之则不确定性越小;
假定当前样本集合D中第k类样本所占的比例为pk(k1,2,,Y),则D的信息熵为:
Ent(D)的值越小,D的纯度越高(约定:若p0则plog2p0)
数据集:
2、信息增益(InformationGain)
一般而言,信息增益越大,则意味着用属性a来进行划分所获得的纯度提升越大:
ID3就是以信息增益为准则来选择划分属性的
举例:
3、增益率
实际上,信息增益对可取值数目较多的属性有所偏好(如编号,在西瓜集中若以编号为划分属性,则其信息增益最大),为减少由于偏好而带来的不利影响,C4。5算法使用增益率(gainratio)来选择最优划分属性:
其中:
称为属性a的固有值(intrinsicvalue),属性a的可能数目越多,则IV(a)的值通常越大信息增益率准则对可取值数目较少的属性有所偏好,C4。5采用的是先从候选划分属性中寻找出信息增益率最高的属性
举例:
4、基尼指数(GiniIndex)
CART(ClassificationandRegressionTree)使用基尼指数(Giniindex)来选择划分属性,数据集的纯度可用基尼值来度量
属性a的基尼指数定义为:
在属性集合A中寻找:
CART决策树使用基尼指数作为属性划分的标准
我们使用色泽属性进行举例,计算此时的基尼指数:
5、剪枝处理
剪枝(pruning)是决策树学习算法对付过拟合的主要手段,基本策略有预剪枝(prepruning)和后剪枝(postpruning)预剪枝:在决策树的生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来泛化性能提升则停止划分后剪枝:先生成一个完整的树,然后自底向上对非叶节点考察,若将该节点对应的子数替换为叶节点能提升泛化性能则替换
5。1预剪枝
预剪枝的关键在于是否继续进行划分:在上面的西瓜的例子当中,在划分前,我们将其类别标记为训练样例最多的类别好瓜。那么在验证集用脐部这个结点进行划分,则编号{4,5,8}被划分正确,其划分进度为3710042。9如果我们使用脐部进行划分,那么图中、和分别包含编号为{1,2,3,14}、{6,7,15,17}和{10,16}的训练样例,因此这3个结点分别被标记为叶结点好瓜、好瓜、坏瓜(按其训练样例最多类别归属),此时,验证集中编号为{4,5,8,11,12}的样例被分类正确,验证集精度为57x10071。442。9。于是,用脐部进行划分得以确定。
预剪枝使决策树的很多分支都没有展开,不仅降低了过拟合的风险,还显著减少了训练时间和测试时间,但是可能会引起过拟合5。2后剪枝
后剪枝通常比预剪枝保留更多的分值,一般情况下,后剪枝欠拟合风险很小,泛化性能优于预剪枝,但其训练时间比未剪枝和预剪枝都要大得多我们基于信息增益算法进行划分决策树,最后在验证集的划分精度为42。9,我们基于这颗完整的树进行后剪枝我们先考虑结点6纹理,将其替换为叶结点,替换后的结点包含样本{7,15},因此将其标记为好瓜,则此时决策树在验证集的精度提升至57。1,因此进行剪枝连续与缺失值连续值处理
在C4。5决策树算法当中,使用二分法对连续的数值进行处理:我们可以考察包含n1个元素的候选划分点集合
我们将每个区间的中位点作为候选划分点,然后我们使用想离散值属性一样来考察这些划分点,选取最优的划分点进行样本集合的划分,例如:
对上图表格当中的例子而言,设置密度为:
根据Gain的计算公式可以得到属性密度的信息增益位0。262,对应于划分点0。381。同时按照之前的离散值的计算方法,计算离散属性的信息增益的值:
Gain(D,色泽)0。109;Gain(D,根蒂)0。143;
Gain(D,敲声)0。141;Gain(D,纹理)0。381;
Gain(D,脐部)0。289;Gain(D,触感)0。006;
Gain(D,密度)0。262;Gain(D,含糖率)0。349。
可以发现纹理的信息增益是最大的,所以我们选择纹理作为根节点作为划分属性,然后每个结点划分过程递归进行,最终生成如图所示的决策树:
缺失值的处理
一些数据由于敏感等原因,部分数据可能会出现缺失的情况,例如下面的情况:
在决策树的C4。5算法当中,我们使用了没有缺失值的样本子集进行树的构建。以上述表格为例子举例,没有缺失值的样例子集包含编号为{2,3,4,6,7,8,9,10,11,12,14,15,16,17}的14个样例(总共有17个样例)。那么相应的信息熵为:
其分别在色泽属性上取值为青绿,乌黑以及浅白的样本子集,那么有:
因此在样本子集上,其信息增益为:
那么在样本集上的色泽的信息增益为,要乘以其没有缺失的样例数量除以全部的样例数量:
在上述文章提及的变量为,其中每个样本的权重wk为1:
决策树算法优缺点优点:决策树具有高度可解释性;需要很少的数据预处理;适用于低延迟应用。劣势:很可能对噪声数据产生过拟合。决策树越深,由噪声产生过拟合的可能性就越大。一种解决方案是对决策树进行剪枝。代码演示DecisionTree数据集irissklearn可视化决策树插件Download:https:graphviz。orgdownload决策树插件安装文档:https:blog。csdn。netu012744245articledetails103360769coding:utf8fromsklearn。datasetsimportloadirisfromsklearnimporttreeimportpydotplusimportos用于划分训练集与测试集os。environ〔PATH〕os。pathsepC:ProgramFilesGraphvizbin指定路径fromsklearn。modelselectionimporttraintestsplitfromsklearn。metricsimportclassificationreport加载数据irisloadiris()划分训练集与测试集(traininginputs,testinginputs,trainingclasses,testingclasses)traintestsplit(iris。data,iris。target,testsize0。4,randomstate1)构建模型clftree。DecisionTreeClassifier()clfclf。fit(traininginputs,trainingclasses)测试值预测ypredictclf。predict(testinginputs)预测值和测试值打分scoreclassificationreport(testingclasses,ypredict)print(score)保存模型withopen(iris。dot,w)asf:ftree。exportgraphviz(clf,outfilef)画图,保存到pdf文件设置图像参数dotdatatree。exportgraphviz(clf,outfileNone,featurenamesiris。featurenames,classnamesiris。targetnames,filledTrue,roundedTrue,specialcharactersTrue)graphpydotplus。graphfromdotdata(dotdata)保存图像到pdf文件graph。writepdf(irsi。pdf)
决策树示意图:
清廉北湖为美而生视频加载中一尊古朴方印落于一幅以邓华故居水月莲花群山和清廉北湖四个古朴苍劲大字组成的美丽书法画卷之上,印起处,一方耀眼的红色印章映入眼帘,这就是郴州市北湖区纪委监委精心设计的清廉北
不让好人寒心,才是这世间最大的善良白夜行中有这样一句话这个世界上有两个东西不可以直视,一个是太阳,另外一个是人心。不知道从什么时候开始,在马路上扶老人不再是善意之举不知从什么时候开始,帮助他人不再是满怀骄傲不知从什
暗恋能否藏的住下他们说自己是一个灵魂,两个肉体恋人是一个肉体两个灵魂,我想这句话说得很对。只可惜我不是你的另一半灵魂也不是你的另一半肉体,我以前总是放纵自己放纵我耐克和你一样渴望自由的心灵,我想我
我命由我,不由天你要是听神父的,人一生下来就有罪,可是你要听警察的呢,就哪儿都不安全,你要是听医生的,那你就别活了,哪儿都不干净。你要是按律师所说的法律条文去做,那你就休想赚到钱。是人都不可信,当
露从今夜白,月是故乡明今夜月明人尽望,不知秋思落谁家。流年似水,半生漂泊,蓦然想起,人已中年。青春年少不知疲倦的年华早已逝去,风狂雨虐后,满身疮痍,日日里,总有各种不舒畅遍布全身,不由得令人感叹,原来老
人生的磨砺人生就像是一条河流,有直也有曲。人生就像是山脉,有平原也有深渊。人生就像是社会文明给我们磨难,有苦也有甜。人生这你名词也好,耳边也好,总会在我们的生命中划过。有的人总说我的人生都是
时间对现在的你而言,到底是过得快,还是慢众所周知,一天对每个人而言都是二十四个小时。时间客观上对待每个人都是公平的,无论你是位高权重富甲一方,还是平头百姓,小门小户。但时间对于每个人而言的感受,却又不相同。有人觉得时间飞
我们对生活的反应,始于害怕,成于担当责任,终于爱记录成长分享生活坚持写作之388400今天这么好的天气带着女儿来到公园散步,真的好舒服,好享受。感受到事情少的好处,可以多一些陪伴。时间管理就是精力管理,在有限的时间与精力资源分配
有没有突然想家想妈妈你自认为已经成家,是个成年人。你嫌弃妈妈的唠叨,你看不惯妈妈逐渐的邋遢,你讨厌妈妈在你耳边教你做事,说你要这么做,你要那样来,你心里烦的很,心想你知道的我会不知道?心想你从抖音,微
你都没飞过,你怎么知道你不能飞时间飞快,春天开始在立春,与冬奥一起开始,现在已经历过了元宵,雨水,再过几天就是惊蛰了。春天之美可由花知,杏花,桃花争相而开,粉嫩可爱,仅仅是一朵,便足以阐述整个春,春天清香怡人,
现在的人不缺吃穿用,为什么没有幸福感经常听到有人感叹,以前的时候,吃穿用的,没有现在好,还是感到幸福感满满的。现在呢,生活好了,吃穿用的也都讲究了,反而没有什么幸福感。然后一声长叹,人的欲望多了,难啊!现在的人不缺吃