《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx

上传人:李司机 文档编号:7016933 上传时间:2024-04-12 格式:DOCX 页数:20 大小:153.91KB
返回 下载 相关 举报
《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx_第1页
第1页 / 共20页
《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx_第2页
第2页 / 共20页
《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx_第3页
第3页 / 共20页
《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx_第4页
第4页 / 共20页
《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx》由会员分享,可在线阅读,更多相关《《机器学习基础及应用》教案第8课使用决策树算法实现分类与回归.docx(20页珍藏版)》请在三一办公上搜索。

1、课题使用决策树算法实现分类与回归课时2课时(90min)教学目标知识技能目标:(1)掌握决策树算法用于分类任务的基本原理(2)掌握决策树算法用于回归任务的基本原理(3)掌握ID3算法、C4.5算法和CART算法的基本原理(4)掌握决策树算法的Skleam实现方法(5)能够使用决策树算法训练分类模型(6)能够使用决策树算法训练回归模型(7)能够编写程序,寻找最佳的决策树深度值素质目标:(I)关注国家资讯,增强民族意识,培养爱国主义精神。(2)理解决策树算法的基本原理,培养勇为人先的创新精神教学重难点教学重点:决策树算法用于分类任务和回归任务的基本原理;ID3算法、C4.5算法和CART算法的基本

2、原理;决策树算法的Sklearn实现方法教学难点:使用决策树算法训练分类和回归模型;编写程序,寻找最佳的决策树深度值教学方法案例分析法、问答法、讨论法、i井授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,提前了解决策树算法的相关知识【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】要求学生扫码观看”决策树算法的基本原理”视频,提出以下问题:(1)决策树算法用于分类任务的基本原理是怎样的?(2)决策树算法用于回归任务的基本原理是

3、怎样的?(3)常用的构造决策树的算法有哪几种?【学生】思考、举手回答传授新知【教师】通过学生的回答引入要讲的知识,介绍决策树算法的基本原理、决策树算法的SkIearn实现的相关知识6.1 决策树算法的基本原理决策树(decisiontree)是一种基于树结构的机器学习模型,可以用于分类与回归任务。在机器学习中,决策树分为分类树和回归树,当对样本的所属类别进行预测时使用分类树;当对样本的某个值进行预测时使用回归树。6.1.1 决策树算法的原理分析1.分类决策树的基本原理分类任务的目标是通过对雌集的学习,总结一种决策规则,预测未知样本的类别。使用决策树算法进行分类的原理是给定一个训练数据集,根据训

4、练集构造决策树,根据决策树写出对应的决策规贝k然后使用决策规则对待分类样本”进行分类.【教师】通过多媒体展示“购买计算机的客户数据集“表格,并进彳济并解例如,购买计算机的客户数据集(见表6-2),使用决策树算法训练模型,可构造决策树.表62购买计算机的客户数据集客户编号年龄收入是否为学生信用情况购买计算机情况I青年高否一般没有购买2青年高否好没有购买3中年高否一般已购买4老年中否一般已购买5老年高是一般已购买6老年高是好没有购买7中年中是好已购买8青年中否一般没有购买9青年高是一般已购买10老年中是一般已购买11青年中是好已购买12中年中否好已购买13中年高是一般已购买14老年中否好没有购买【

5、教师】通过多媒体展示“分类决策树”图片(详见教材),并进彳五并解从图可以看出,决策树的根节点和内部节点为数据集中的特征属性,叶节点为类别标签,根据特征属性的取值来判断进入哪一个分支。决策树分类采用自顶向下的递归方式,在决策树内部节点进行属性值的比较,根据不同的属性值判断从该节点向下的分支,在叶节点上得到结论。所以,从决策树的根节点到叶节点的每一条路径都对应一条合取规则。例如,图6的决策树对应的决策规则为If年龄=青年人不是学生Then没有购买计算机If年龄=青年人是学生Then已购买计算机If年龄=中年Then已购买计算机If年龄=老年人信用情况=好Then没有购买计算机If年龄=老年信用情况

6、二一般Then已购买计算机使用这些决策规则就可以对新的待测样本的类别进行判定。例如,新样本(老年,收入中等,不是学生,信用一般)的类别判定为已购买计算机。2.回归决策树的基本原理回归任务研究的是一组变量与另一组变量之间的关系,其预测结果是连续的数值。回归决策树的基本原理是给定一个数据集,根据数据集构造决策树,根据决策树将特征空间划分为若干单元,每个单元有一个特定的输出(如训练集对应样本的平均值).对于新的待测样本,只要按照特征值将其归到某个单元,即可得到相应的输出值。【教师】通过多媒体展示“回归决策树图片和回归决策树测试数据集“表格(详见教材),井进彳五并解例如,回归决策树测试数据集(见表6-

7、3),使用决策树算法训练模型,可构造如图所示的决策树(使用决策树算法对表6-3中的数据集进行回归预测的程序见例6-5)表6-3回归决策树测试数据集XyXy142839510719回归任务中,数据集的特征变量一般是连续的数值。因此,决策树的根节点和内部节点一般为数据集的特征属性,每个分支为特征属性值中两相邻点的中值(将特征属性值进行排序,然后取相邻两点的中值),叶节点为模型的输出值。根据图6-2中的回归决策树可将特征空间划分为多个单元,每个单元有一个特定的输出值(图6-2中的输出值为各对应点的平均值),如图6-3所示。这样,对新的待测样本进行预测时,只要按照特征值将其归到某个单元,即可得到相应的

8、输出值。例如,新样本(X=4)的输出值为9.5.【教师】通过多媒体展示“回归决策树划分特征空间”图片(详见教材),并迸行讲解决策树算法可用于分类任务和回归任务。无论是分类任务还是回归任务,决策树算法的关键是构造合适的决策树,只要有了决策树,就可以根据决策树写出分类决策规则或划分特征空间,然后预测新数据.构造决策树常用的算法有ID3算法、C4.5算法和CART算法。6.1.2ID3算法ID3算法构造决策树的基本思想是:以信息增益最大的特征属性作为分类属性,基于贪心策略的自顶向下搜索遍历决策树空间,通过递归方式构建决策树,即比较每个特征属性的信息增益值,每次选择信息增益最大的节点作为决策树(或子树

9、)的根节点。信息增益是信息论中的概念,指的是得知特征属性A的信息而使得类别属性Y的取值不确定性减少的程度。用数学表达式可表示为gain(r,A)=H(Y)-H(Y|A)其中,(V)表示类别Y的烯(无条1牛墉),表示已知特征属性A的值后类别属性的条件烯。gain(KM)表示因为知道特征属性A的值后导致类别属性嫡的减小值(即类别属性Y的取值不确定性减少的程度),称为信息增益。gain/,A)的值越大,说明特征属性A提供的信息越多。1.埔牖的概念来源于信息论。信息论认为,信息是对客观事物不确定性的消除或减少。接收者收到某一信息后所获得的信息量,可以用接收者在通信前后不确定性的消除量来度量。生活中有这

10、样的直观经验:北方的秋天常常是秋高气爽的天气,如果天气预报是明天是一个晴天”,人们习以为常,因此得到的信息量很小;但如果天气预报是“明天有雪,人们将感到十分意外,这个异常的信息给人们带来了极大的信息量.可见,信息量的大4与消息出现的概率成反比.基于上述特性,可将信息量的大小定义为消息出现概率的倒数的对数,用数学表达式表示为I(Xi)=log!=-logp(xi)P(Z)其中,“为)表示消息的信息量(一般称为自信息量),Mz)表示消息发生的概率。当对数底为2时,信息量的单位为比特(bit);当对数底为e时,信息量的单位为奈特(nit)目前使用最广泛的单位是比特,本书也使用比特作为信息量的单位.通

11、常,信源能发出若干条信息(如天气预报可能会播报晴天和雨天两种信息,晴天的概率为0.25,阴天的概率为0.75),很多时候人们所关心的并不是每条信息携带的信息量,而是信源发出的所有信息的平均信息量。平均信息量指每条信息所含信息量的统计平均值,因此有N条消息的离散信源的平均信息量为H(X)=汽p(xi)I(xi)=-P(Xi)IOgP(Xi)/=I=l这个公式与统计物理学中燧的计算公式完全相同,因此把信源输出信息的平均信息量称为信源的焰。2.条件端条件焰是指在获得信源X发出的信息后,信宿Y仍然存在的不确定性。在给定X(即各个)的条件下,Y集合的条件烯为H(WX)。条件楠”3X)表示已知条件X后,Y

12、仍然存在的襁定度,其公式如下。H(YX)=p(xj)H(YX=xj)J=I3.ID3算法的流程使用ID3算法构造决策树的流程如下。(1)确定决策树(或子树)的根节点。首先,计算给定数据集中类别属性的信息精;然后,计算给定数据集中每个特征属性的条件嫡;最后,计算各个特征属性对应类别属性的信息增益,并选择信息增益最大的特征属性作为决策树(或子树)的根节点。(2)更新数据集,根据决策树(或子树)根节点特征性的取值将训练雌集分配到各分支中。(3)重复以上步骤,直至子集包含单一悔正属性或节点的样本个数小于预定阈值。(4)生成ID3决策树。【教师】通过多媒体展示“天气情况和是否进行活动的数据集“表格,并进

13、行讲解【例6-1某单位要组织一次户外活动,活动时间将至,活动策划人需要根据天气情况评判此次活动是否能如期进行。为此,他收集了以往关于天气情况和是否进行活动的数据集,如表6-4所示。使用ID3算法构造决策树,判定活动(活动当天天气:阴,寒冷,湿度高,风速弱)是否能如期进行。表64天气情况和是否进行活动的数据集序号天气温度湿度风速活动I晴炎热高弱取消2晴炎热高强取消3阴炎热高弱进行4雨适中高弱进行5雨巷Q正常弱进行6雨寒冷正常强取消7阴寒冷正常强进行8晴适中高弱取消9晴寒冷正常弱进行10雨适中正常弱进行11晴适中正常强进行12阴适中高强进行【解】ID3算法构造决策树并对新样本进行预测的步骤如下。(

14、1)确定根节点。数据集中共有4个特征属性,使用ID3算法构造决策树需要计算每个属性的信息增益,确定决策树的根节点.各个特征属性对应类别属性的信息增益用公式表示为gain(活动,天气)=H(活动)-“(活动|天气)gain(活动,温度)=(活动)-(活动I温度)gain(活动,湿度)=H(活动)-H(活动I湿度)gain(活动,风速)=H(活动)-“(活动|风速)需要分别计算”(活动)”(活动I天气)”(活动I温度)”(活动I湿度)与”(活动I风速)的值。计算类别属性活动的域活动这一列中,进行出现了9次,“取消”出现了5次。因此,进行活动的概率为9/14,取消活动的概率为514则无条件烟”(活动

15、)的值为”(活动)=上P(M)IOgP(若)=-(914)log(914)-(514)log(514)0.94已知天气的情况下,计算类别属性活动”的条件烯,数学表达式为”(活动I天气)=M晴)”(活动I天气=晴)+P(阴)”(活动I天气=阴)+M雨)(活动I天气=雨)天气”这一列有晴、阴和雨3个属性值,其出现的概率分别为5/14、4/14和5/14。当天气为晴时,活动进行的概率为2/5,活动取消的概率为3/5;当天气为阴时,活动进行个概率为1,活动取消的概率为0;当天气为雨时,活动进行的概率为3/5,活动取消的概率为25于是,有”(活动I天气=晴)=-(2/5)log(25)-(35)log(

16、35)0.971”(活动I天气=阴)=-1log1-01OgO=OH(活动I天气:雨)=-(3/5)log(35)-(2/5)log(25)0.971因此,已知天气情况下,类别属性活动”的条件嫡为(活动I天气)=p(晴)H(活动I天气=晴)+P(阴)”(活动I天气:阴)+p(雨)”(活动I天气=雨)=(5/14)X0.971+(4/14)0+(5/14)0.9710.693用同样的方法,分别计算已知温度情况下类别属性活动”的条件尴,已知湿度情况下类别属性活动的条件嫡和已知风速情况下类别属性活动的条件牖,即“(活动I温度)、(活动I湿度)和”(活动I风速)的值,其结果如下。”(活动I温度)=p(

17、炎热)”(活动I温度:炎热)+p(适中)”(活动I温度=适中)+(寒冷)(活动I温度=寒冷)=(4/14)1+(6/14)0.918+(4/14)0.8110.911(活动I湿度)=p(高)”(活动I湿度二高)+p(正常)”(活动I湿度二正常)=(7/14)0.985+(7/14)0.5920.789”(活动I风速)=(强)”(活动I风速=强)+M弱)”(活动I风速=弱)=(6/14)l+(814)0.8110.892计算各个特征属性对类别属性的信息增益。gain(活动,天气)=H(活动)-”(活动I天气)=0.94-0.693=0.247gain(活动,温度)=(活动)-”(活动I温度)=0

18、.94-0.911=0.029gain(活动,湿度)=(活动)-H(活动I湿度)=0.94-0.789=0.151gain(活动,风速)=(活动)-H(活动|风速)=0.94-0.892=0.048*【教师】通过多媒体展示“决策树根节点”图片(详见教材),井进彳亍并解可见,特征属性天气的信息增益最大,故应选择天气作为决策树的根节点,如图。(2)确定天气=雨分支的根节点。首先,找到天气=雨”条件下的所有样本,如表6.5所示。【指点迷津】天气=阴下所有样本的类别均为“进行.因此,只需要确定天气=雨和天气=晴两个分支的根节点即可。表6-5天气=雨条I牛下的样本序号天气温度湿度风速活动4雨适中高弱进行

19、5雨寒冷正常弱进行6雨寒冷正常强取消10雨适中正常弱进行14雨适中高强取消依据表6-5中的数据确定本分支的根节点,与确定根节点”的步骤相同,需要分别计算温度、湿度和风速3个特征属性对类别属性的信息增益,计算结果如下。gain(活动,温度)=(活动)-”(活动I温度)=0.971-0.95=0.021gain(活动,湿度)=(活动)-(活动I湿度)=0.971-0.95=0.021gain(活动,风速)=(活动)-”(活动I风速)=0.971-0=0.971可见,特征属性风速的信息增益最大,故选择“风速作为天气=雨分支的根节点。【教师】通过多媒体展示“天气=晴条件下的样本“表格,并进行谢解(3)

20、确定天气=Br分支的根节点。首先,找到天气=晴条件下的所有样本,如表6-6所示。表6-6天气=晴条件下的样本序号天气温度湿度风速活动1晴炎热高弱取消2晴炎热高强取消8晴适中高弱取消9晴寒冷正常弱进行11晴适中正常强进行依据表6-6中的数据确定本分支的根节点,需要分别计算温度、湿度和风速3个特征属性对类别属性的信息增益。通过计算可知,特征属性湿度”的信息增益最大,故选择湿度作为天气=晴分支的根节点。【教师】通过多媒体展示“完整决策树”图片(详见教材),并进行讲解此时,每个叶节点中所有的样本都属于同一类别,ID3算法结束,分类完成,最终得到的决策树如图。(4)根据决策树写出决策规则。从决策树的根节

21、点到叶节点的每条路径对应一条合取规则,故图中决策树对应的决策规则为If天气二雨八风速二弱Then活动进行If天气=雨风速二强Then活动取消If天气=阴Then活动进行If天气=晴人湿度:正常Then活动进行If天气=晴八湿度=高Then活动取消(5)使用决策规则对新样本进行预测。对于新样本(阴,寒冷,湿度高,风速弱),根据决策规则,应划分为“进行”这个类别.因此,活动不会取消,可以如期进行.【高手点拨】ID3算法的优点在于算法理论清晰、方法简单、易于理解,其缺点如下.(1)信息增益的计算偏向于取值较多的特征属性。(2)ID3算法容易产生过拟合现象。(3)ID3算法只能用于离散值属性,不能直接

22、用于连续值属性。(4)抗噪性差,训练集中正例和反例的比例较难控制。(5)ID3算法需要多次遍历数据库,效率不如朴素贝叶斯算法高。6.1.3C4.5算法ID3算法存在的一个问题是,信息增益偏向拥有属性值较多的特征属性,因为从端的计算公式来看,特征取值越多,燧越大。为此,人们又提出了C4.5算法。C4.5算法最重要的改进是用信息增益率取代信息增益作为衡量特征属性的标准。信息增益率使用“分裂信息值将信息增益规范化,其数学表达式为.c.gain(S,A)gainration(5,A)=split_infb(S,A)其中,gain_ration(5A)表示信息增益率,S表利Il练样本集,A表示特征属性;

23、gain(SfA)表示信息增益;SPE-inf。(SA)表示分裂信息,分裂信息的数学表达式为(S表示含有第i个属性值的样本集)splitJnfo(S,A)=-宜黑IOg党例如,在例6/中,特征属性天气”中取值晴、阴和雨的概率分别为5/14、4/14和5/14,则“天气”的分裂信息和信息增益率分别为SPliIJnfb(活动,天气)=-(5/14)log(514)-(4/14)log(414)-(5/14)log(5I4)1.58八壬丹gain(活动,天气)0.247gain_ration(活动,天气)=0.156split_info(活动,天气)1.58一个特征属性分割样本的属性值越多,均匀性越

24、强,该属性的分裂信息就越大,信息增益率就越小。因此,信息增益率降低了选择那些值较多且均匀分布的特征属性的可能性.【例6-2使用C4.5算法重新对例6-1的数据进行决策树分类。【解】C4.5算法构造决策树的步骤如下。(1)计算各个特征属性对类别属性的信息增益。信息增益的计算方法与ID3算法相同。gain(活动,天气)=H(活动)-”(活动I天气)=0.94-0.693=0.247gain(活动,温度)=(活动)-”(活动I温度)=0.94-0.911=0.029gain(活动,湿度)=(活动)-H(活动I湿度)=0.94-0.789=0.151gain(活动,风速)=(活动)-H(活动I风速)=

25、0.94-0.892=0.048(2)计算各个特征属性的分裂信息。SPliLinfO(活动,天气)=-(514)log(514)-(4/14)log(4l4)-(5/14)log(514)1.58SPIitJnfd(活动,温度)=-(4/14)log(414)-(6/14)log(614)-(4/14)log(414)1.56SPlitJnfb(活动,湿度)=-(7/14)log(714)-(7/14)log(7l4)=1SPIiJinfb(活动,风速)=-(814)log(814)-(614)log(614)0.985(3)计算各个特征的信息增益率。gain-ration(iJ,天气)=0.

26、247/1.580.156gainjalion(活动,温度)=0.029/1.560.0186gain_ration(活动,湿度)=0.151/1=0.151gain_ration(活动,风速)=0.048/0.9850.049可见,特征属性天气”的信息增益率最大,故选择“天气作为决策树的根节点。(4)天气=阴”分支下所有样本的类别均为“进行。接下来确定天气=雨和天气=B青两个分支的根节点。分别计算天气=雨和天气=晴两个分支子数据集中各个特征属性的信息增益率。通过计算可知,天气=雨子集中,风速属性的信息增益率最大;天气=晴子集中,湿度属性的信息增益率最大,因此分别选择风速和湿度作为天气=雨和天

27、气=晴”两个分支的根节点。【教师】通过多媒体展示“完整决策树”图片(详见教材),并进彳/并解至此,所有样本都已确定类别,C4.5算法终止,最终得到的决策树如图所示。【高手点拨】C4.5算法在ID3算法的基础上进行了两方面的改进,一方面,C4.5算法可以避免偏向取值较多的特征属性;另一方面,C4.5算法能够处理连续型数值数据.C4.5算法的缺点如下。(1)在构造决策树的过程中,需要对数据集进行多次JI酹扫描和排序,导致算法计算效率低。(2)决策树算法容易过拟合,因此须对构造的决策树进行剪枝处理。C4.5的剪枝算法还有优化的空间。(3)C4.5算法构造的是多叉树。很多时候,在计算机中二叉树要比多叉

28、树运算效率高。6.1.4CART算法CART算法既可用于分类也可用于回归,它本质上是对特征空间进行二元划分,即CART算法构造的是二叉树,并可对离散属性与连续属性进行分裂。CART算法的基本思路是:使用基尼指数(giniin加X)作为度量数据集纯度的指标,其值越小,数据集样本的纯度越高,因此,选择基尼指数最小的属性作为决策树的根节点。1 .基尼指数的计算公式如果训练数据集D根据特征A是否取某一可能值被划分为2和0?两部分,则在特征属性A的条件下,训练数据集D的基尼指数为gini_index(),A)=-gini(D1)+-gini(f2)其中,基尼值ginKA)的计算公式为(式中,表示类在A数

29、据集中出现的概率)gini(D1)=l-p,2/=I2 .CART算法的雌使用CART算法构造决策树的流程如下。(1)计算训练数据集中每个特征属性中每个划分(属性值)对该数据集的基尼指数。(2)在所有特征属性及其对应划分点(属性值)中,选择基尼指数最小的特征属性与对应的划分点作为最优特征属性与最优划分点。(3)选择最优特征属性作为决策树(或子树)的根节点,选择最优划分点作为决策树的两个分支。(4)更新数据集。根据决策树(或子树)根节点特征属性的取值将训练数据集分配到两个分支中。(5)重复以上步骤,直至节点的样本个数小于预定阈值或者样本集的基尼指数小于预定阈值(样本基本属于同一类).(6)MCA

30、RT决策树。*【教师】通过多媒体展示“银行客户数据集“表格,并进行讲解【例6-3银行在办理贷款业务时,需要对客户是否会拖欠贷款进行评估,现有某银行的客户数据集(见表6.7),使用CART算法构造决策树,判定新用户(有房,单身,年收入90k)是否会拖欠贷款.表6-7银行客户数据集序号是否有房婚姻状况年收入/(k)是否拖欠贷款1是单身125否2否已婚100否3否单身70否4是已婚120否5否离异95是6否已婚60否7是离异220否8否单身85是9否已婚75否10否单身90是【解】CART算法构造决策树并对新样本进行预测的步骤如下。(1)是否有房特征属性只有两个取值,可以根据其取值是或否将健集划分为

31、两部分,计算每个部分的基尼值,然后计算其基尼指数.计算取值为是的基尼值。属性值为是”的3个样本中,有0个拖欠贷款(占0/3),有3个没有拖欠贷款(占3/3),则基尼值为gini()=1-(0/3)2-(3/3)2=0计算取值为否的基尼值。属性值为否”的7个样本中,有3个拖欠贷款(占3/7),有4个没有拖欠贷款(占4/7),则基尼值为gini(否)=1-(3/7)2-(4/7)20.4898计算已知是否有房条件下,类别属性的基尼指数。gini_index(是否拖欠贷款,是否有房)=(3/10)0+(7/10)0.4898=0.34286(2)婚姻状况特征属性有3个取值,根据每个值可将数据集进行划

32、分,计算每个划分的基尼指数。计算婚姻状况为单身条件下,类别属性的基尼指数。属性值为单身”的样本有4个(占总样本的4/10),其中有2个拖欠贷款(占2/4),有2个没有拖欠贷款(占2/4);属性值为“已婚或离异”的样本有6个(占总样本的6/10),其中有1个拖欠贷款(占1/6),有5个没有拖欠贷款(占5/6)f则其基尼指数为gini_index(是否拖欠贷款,婚姻状况=单身)=(4/10)1-(2/4)2-(2/4)2】+(6/1o)x1-(1/6)2-(5/6)20.36667使用同样的方法计算婚姻状况为已婚条件下,类别属性的基尼指数。gini_index(是否拖欠贷款,婚姻状况=已婚)=(4

33、/10)1-(0/4)2-(4/4)2+(6/10)1-(3/6)2-(36)2=0.3使用同样的方法计算婚姻状况为离异”条件下,类别属性的基尼寺旨数。gini_index(是否拖欠贷款,婚姻状况=离异)=(2/10)1-(1/2)2-(l2)2+(8/10)1-(2/8)2-(6/8)2=0.4(3)年收入特征属性的取值是连续性数据,这些连续性数据可将辘集进行不同的划分,计算每个划分的基尼指数。对年收入”的属性值进行排序,然后分别计算两个相邻值的中值。本例有IO个属性值,因此有9个中值,分别是65、72.5、80、87.5、92.5、97.5、110、122.5和172.5。计算年收入”划分

34、点为65时,类别属性的基尼指数。属性值小于或等于65的样本有I个(占总样本的1/10),其中有O个拖欠贷款(占0/1),有1个没有拖欠贷款(占1/1);属性值大于65的样本有9个(占总样本的9/10),其中有3个拖欠贷款(占3/9),有6个没有拖欠贷款(占6/9),则其基尼指数为gini_index(是否拖欠贷款,年收入=65)=(1/10)1-(0/1)2-(11)2+(9/10)1-(3/9)2-(6/9)2=0.4【教师】通过多媒体展示“连续性数据的基尼指数”表格,并进行讲解使用同样的方法计算年收入”为其他划分点时,类别属性的基尼指数,计算结果如表6-8所示。表6-8连续性数据的基尼指数

35、划分点72.58087.592.597.5IlO122.5172.5符号否拖欠贷款是(样本数)(-(-(-(否(样本数)4*L*2*(基尼指数0375OO0.342860.416670.400OO0.300OO0.342860.375OO0.4(X)OO【教师】通过多媒体展示“决策树根节点”图片(详见教材),并进彳方并解(4)在这些特征属性与对应的划分点中,选择基尼指数最小的特征属性与对应的划分点作为最优特征属性与最优划分点。比较发现,已婚作为婚姻状况”的划分点与“97.5作为“年收入的划分点的基尼指数相同,选择其中一个作为最优特征属性和最优划分点即可。本例中选择“婚姻状况”作为最优特征属性,

36、其对应属性值已婚作为最优划分点,得到的决策树根节点如图所示。(5)确定右分支的根节点。首先,找到该条件下所有的样本,如表6-9所示.【教师】通过多媒体展示“右分支数据集”表格,并进行讲解表6-9右分支数据集序号是否有房婚姻状况年收入/(k)是否拖欠贷款I是单身125否3否单身70否5否离异95是7是离异220否8否单身85是10否单身90是根据表6-9的样本数据,重复步骤(1)步骤(4),确定该分支的根节点为是否有房。【教师】通过多媒体展示“完整决策树”图片(详见教材),并进行讲解(6)继续进行同样的运算,最后得到的决策树如图所示。(7)根据决策树写出决策规则。从决策树的根节点到叶节点的每条路

37、径对应一条合取规则,故图6-7中决策树对应的决策规则为If婚姻状况=已婚Then没有拖欠贷款If婚姻状况=单身Or婚姻状况=离异有房Then没有拖欠贷款If婚姻状况=单身Or婚姻状况=离异没有房八年收入,,77.5Then没有拖欠贷款If婚姻状况=单身Or婚姻状况=离异没有房年收入77.5Then拖欠贷款(8)使用决策规则对新样本进行预测。对于新用户(有房,单身,年收入90k),根据决策规则,应划分为没有拖欠贷款”这个类别.【教师】讲解“素养之窗”的内容(详见教材),了解我国智能产业的发展6.2决策树算法的SkIeanI实现6.2.1 Sklearn中的决策树模块Skleam的tree模块提供

38、了DeCiSiOnTreeQaSSifier和DecisionTreeRegressor类,分别用于实现决策树分类和回归算法.在SkIeam中,可通过下面语句导入决策树算法模块。fromsklearn.treeimportDecisionTreeClassifier#导入决策树分类模块fromsklearn.treeimportDecisionTreeRegressor#导入决策树回归模块DecisionTreeClassifier类和DecisionTIeeRegressor类都有如下几个参数。(1)参数max_depth用于设置决策树的最大深度,取值为正数或Nonee决策树的深度过大,容易

39、出现过拟合现象,故推荐深度为52()。(2)参数Criierion用于设置特征属性的评价标准,DecisionTreeClassifier中参数criterion的取值有gini和entronpy,gini表示基尼指数,entronpy表示信息增益,默认值为gini;DecisionTreeRegressor中criterion的取值有mse和mae,mse表示均方差,mae表示平均绝对误差,默认值为mse。(3)参数SPIiUer表示特征划分点的选择标准。取值有best和random,默认值为random,best表示在所有特征中找到最好的划分,适合样本量较小的情况;random表示随机抽取

40、部分特征,再在这些特征中找到最好的划分,如果样本量非常大,应选择random,可以减少计算开销。(4)参数1nin-samples.split用于设置内部节点的最小样本数量,当样本数量小于此值时,节点将不再划分。(5)参数min_sampleseaf用于设置叶子节点的最少样本数,如果某叶子节点数目小于该值,则会和兄弟节点一起被剪枝。(6)参数min_impurily_sp出用于限制决策树的增长,如果某节点的不纯度(基尼指数、信息增益、均方差、绝对差)小于这个阈值,则该节点不再生成子节点。6.2.2决策何算法的应用举例【例6-4使用决策树算法对SkIeam自带的莺尾花数据集进行分类。【程序分析】

41、使用决策树算法对菅尾花数据集进行分类的步骤如下。(1)确定决策树的最佳深度值。训练决策树模型时,深度值的设置会直接影响决策树的分类效果,如果深度设置不怡当,会导致模型的泛化能力不足或过拟合。因此,在使用决策树建立模型之前需要确定最佳的深度值。【参考代码】fromskleam.datasetsimportIoadJrisfromskleam.model_selectionimporttrain_test_splitimportnunpyasnpfromsklearn.treeimportDecisionTreeClassifierfromsklearn.metricsimportaccuracy

42、_scoreimportmatplotlib.pyplotaspit# 提取梯正,划分雌集x,y=load_iris().data(:,2:4,load_iris().target并提取花霜长度与花鹿宽度作为特征,训练模型xjrain,x_test,yjrain,y_tes(=irain_iest_split(x,y,random_state=0,test_size=50)#将数据集拆分为训练集与测试集# 决策树深度与模型预测误差率计算depth=np.arange(1,15)errjist=foriindepth:model=DecisionTreeClassifier(criterion=

43、entropy,max-depth=i)model.fit(x_train,y_tiain)pred=model.predict(x-test)ac=accuracy_score(y_iest,pred)err=l-acerrjist.append(err)# 绘制决策树深度与模型预测误差率图形plt.plot(depth,errjist,ro-)plt.rcParams,fbnt.sans-serif-Simhei1pltxlabeC决策树深度与PkyIabdc预测误差率)plt.show()【运行结果】程序运行结果如图所示。可见,当决策树的深度为3、4、5或6时,分类效果最好。O. IO-2468101214决策树深磨(2)当深度=3时,建立决策树模型并对其进行评估。【参考代码】科11练模型model=DecisionTreeClassifier(criterion=entropy.max-depth=3)model.fit(x_train,y_irain)解估模型pred=model.predict(x_test)ac=accuracy_score(y_test,pred)PrintC模型的预测准确率为:,ac)【运彳福果】程序运彳福果如图所示模型的预测准确率为:0.96(3)绘制可视化

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号