Python工程应用-数据分析基础与实践课件-第7章_第1页
Python工程应用-数据分析基础与实践课件-第7章_第2页
Python工程应用-数据分析基础与实践课件-第7章_第3页
Python工程应用-数据分析基础与实践课件-第7章_第4页
Python工程应用-数据分析基础与实践课件-第7章_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章概论西华大学机器学习第七章随机森林XXX学校XXX2022目录Contents模型介绍声呐信号分类泰坦尼克号幸存者预测

知识引入3

在小明做计划的过程中,每个人给小明的建议都可以看成一棵决策树,而整个过程则类似我们本章将要介绍的随机森林。

随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。上一章介绍的决策树相当于一个大师,通过自己在数据集中学到的知识用于新数据的分类。但是俗话“三个臭皮匠,顶个诸葛亮”,随机森林就是构建多个“臭皮匠”,希望最终的分类效果能够超过一个“诸葛亮”的一种算法。本章将针对随机森林的原理以及应用进行介绍。

本章知识图谱4模型介绍一1模型介绍6

随机森林是一种集成学习的算法。所谓的集成学习,就是指使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。1.1随机森林的历史7上世纪八十年代出现了分类树的算法,通过反复二分数据进行分类或回归。2001年Breiman等人把分类树组合成随机森林,即在特征变量的使用和样本数据的使用上进行随机化,生成很多分类树,再将各分类树的结果进行汇总,通过集成策略得到最终结果。随机森林在运算量没有显著提高的前提下提高了预测精度,且对多元共线性(multicollinearity)不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个特征变量的作用,被誉为当前最好的算法之一。1.2随机森林原理8原始训练样本集有放回随机抽取k个样本新的训练样本集根据自助样本集K个分类树随机森林

随机森林的采样方法是bootstrap自助式抽样,它与bagging的区别在于在对样本进行采用的同时,对特征也进行随机采样,即在生成每棵树的时候,每个节点的特征变量都仅仅在随机选出的少数特征变量中产生。1.3构造随机森林9

随机森林的构建主要完成两方面工作:数据的随机化和特征变量的随机化,其目的是使得随机森林中的决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。1、数据的随机化(1)采取有放回的抽样方式构造子数据集,保证不同子集之间的数量级一样(不同子集/同一子集之间的元素可以重复);(2)利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果;(3)然后统计子决策树的投票结果,得到最终的分类就是随机森林的输出结果。1.3构造随机森林101.3构造随机森林112、特征变量的随机化

特征变量的随机化是指子树从所有的待选特征中随机选取一定的特征,然后在选取的特征中选取最优的特征。下图中,实心的方块代表所有可以被选择的特征,也就是目前的待选特征;空心的方块是用于划分的特征。1.4随机森林的性能评估12随机森林模型的性能可以通过分类间隔、袋外错误率等指标来评价。1、分类间隔测试样本集随机森林样本测试算法K个N棵决策树

……随机森林的分类间隔通过平均每个样本的分类间隔获得。1.4随机森林模型的性能评估132、袋外错误率

在构建每棵树时,我们对训练集使用了不同的bootstrapsample(随机且有放回地抽取),对于每棵树而言(假设对于第k棵树),没有参与第k棵树生成的那些样本称为第k棵树的袋外(OOB)样本。计算方式:(1)对每个样本,计算将其作为OOB样本的树对它的分类情况。(2)以简单的多数投票作为该样本的分类结果。(3)用误分个数占样本总数的比率作为随机森林的OOB错误率。1.4随机森林模型的性能评估143、特征变量重要程度刻画

在有的实际应用中需要查看诸多的特征中到底哪一部分是相对重要的特征,这时特征变量的重要程度的刻画就显得尤为重要。其计算方式主要有一下两种方式:(1)通过计算特征的平均信息增益大小得出;(2)通过计算每个特征对模型准确率的影响,通过打乱样本中某一特征的特征值顺序,产生新样本,将新样本放入建立好的随机森林模型计算准确率。相对于不重要的特征,即使打乱了顺序也不会对结果产生很大的影响,对于重要的特征,则会对结果产生很大的影响。1.5随机森林的应用15银行股票市场电子商务医药1.6随机森林的Python常用库16

与决策树类似,随机森林也常用sklearn库来实现。在sklearn中,随机森林的分类器是RandomForestClassifier,回归器是RandomForestRegressor。

函数参数描述:参数描述n_estimators弱学习器的最大迭代次数,或最大的弱学习器的个数。一般来说n_estimators太小,容易过拟合,n_estimators太大,又容易欠拟合Bootstrap是否有放回的采样,默认为True。obb_score袋外样本分数,即是否采用袋外样本来评估模型的好坏。cirterion即CART树做划分时对特征的评价标准。分类随机森林对应的CART分类树默认是基尼系数gini,另一个可选择的参数是信息增益。回归随机森林对应的CART回归树默认是均方差mse,另一个可以选择的参数是绝对值差mae。案例:声呐信号分类二2.1案例介绍18案例数据:

数据包括声呐信号在不同物体的返回值。数据有60个特征变量,代表不同角度的返回值。目标是将石头和金属铜(矿石)分开。所有的数据都是连续的,从0到1;输出变量中M代表矿石,R代表石头,需要转换为1和0。案例目标:

通过对声呐信号的60个变量值与判定结果进行学习,训练随机森林模型,然后用训练好的模型预测新的数据为矿石还是为石头。2.2案例实现19转换样本集

将文件里的数据转换为列表形式,存在原始样本集dataset中。dataset形式如下:dataset=[[单个样本的所有数据],[],[],[],[],[],[]……[],[],[]]2.2案例实现202.

训练算法

(1)首先进行样本数据随机无放回抽样,将原始数据集随机拆分为n_folds份数据集,每一份数据集为fold,循环地将每一份数据集存入data_split拆分数据集中。fold形式:

fold=[[单个样本的所有数据],[],[],[],[],[],[]……[],[],[]]data_split形式:data_split=[fold1,fold2,……,foldn]2.2案例实现212.

训练算法

(2)训练数据集随机化

按一定比例(训练数据集的样本比例)随机地从训练练数据集中抽取训练样本。

(3)特征随机化

找出分隔数据集的最优特征得到最优的特征index特征值row[index]以及分隔完的数据groups(left,right)2.2案例实现222.

训练算法

(4)构建随机森林(案例中抽取数据份数为五份)样本集flod0data_split遍历每个fold集合作为测试数据集,剩余四个flod为训练数据集,蓝色为测试数据集,绿色为训练数据集。随机地从训练数据集抽取样本作为训练数据随机地从训练数据中抽取n_features个特征索引决策树创建循环地进行以上三个步骤决策树1决策树2决策树3决策树n随机森林2.2案例实现233.

测试算法所有测试样本的预测结果与实际分类比较,计算出精确率。决策树1决策树2决策树3决策树n随机森林测试数据处理为单个样本集合,用于测试算法随机森林里的决策树对样本进行分类每个样本得到n个分类结果选取n个分类结果中次数最多的结果作为样本最终结果所有测试样本的预测结果案例:泰坦尼克号幸存者预测三3.1案例介绍25案例数据:

本案例使用泰坦尼克号乘客数据集,数据集一共有11个输入属性和一个标签属性。案例目标:

运用随机森林算法根据乘客的不同变量参数特征进行学习,最后预测不同的乘客是否幸存。训练集如下图所示:3.1案例介绍

各个属性的含义如表所示。序号参数名释义1passangerid乘客ID号,这个是自动生成的2Pclass乘客的舱位(1-一等舱;2-二等舱;3-三等舱)3Name乘客姓名4Sex乘客性别5Age乘客年龄6SibSp兄弟姐妹,伴侣人数7Parch父母人数8Ticket票号9Fare船票价格10Cabin船舱号11Embarked上船地点12survived是否生还(1-是,0-否)3.2案例实现1.数据准备

在进行生存率预测之前,我们先将各项数据与生存率的关系进行可视化展示,这种数据相关性分析可以用来判断哪些数据有可能会影响到我们的最终预测结果。船舱等级与生存率舱位等级越高生存率就越高3.2案例实现1.数据准备性别与生存率船舱等级、性别与生存率

明显看出女性生存率远高于男性,但随舱位降低,生存率也随之下降因此舱位与性别对生存结果有较大的影响,应保留。3.2案例实现1.数据准备

可以看出死亡的多为20-40岁之间的人,但是生存的也是20-40岁之间的人多,当然我们也可以解释为船上20-40岁的人占大多数造成了这样的结果,因此这张图的解释性不强。年龄与生存率3.2案例实现1.数据准备

登船地点对生存率的影响大致是C>Q>S,造成这样结果的原因可能是C地的登船的人数更多,也可能是C地头等舱的人更多,总之我们进行预测时需要把这个因素考虑进去。Ticket是一个票号,Cabin代表座位号,二者都与船舱等级信息类似,选择丢弃。同时,乘客姓名其实对结果影响不大,同样选择丢弃。登船地点与生存率3.2案例实现2.随机森林预测导入数据数据预处理导入随机森林模块训练模型测试模型打印准确率3.2案例实现数据预处理

将缺失数据补全,数值型变量可利用该变量的各统计特征补全,如:平均值、众数、最大值、最小值等。这里选择用平均值补全Age缺失的部分。变量Embarked的类型为字符型,我们可以用数量最多的值补全缺失值。同时字符型变量不利于计算机处理,我们需要把字符型变量转换成数值型变量。2.随机森林预测3.2案例实现2.随机森林预测

随机森林分类器中的树的个数,最小样本数及最小子叶数都是可以修改的。我们可以通过循环尝试找出最佳参数。循环输入不同的决策树数目随机森林模型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论