《基于Python随机森林算法分析与研究计算机科学与技术专业.docx》由会员分享,可在线阅读,更多相关《基于Python随机森林算法分析与研究计算机科学与技术专业.docx(31页珍藏版)》请在优知文库上搜索。
1、摘要1Abstract2第一章引言31.1 背景介绍31.2 Python31.2.1 当代环境下的Python41.2.2 Python的演变41.2.3 Python的特点介绍41.2.4 Python的功能与应用51.3 本文结构和框架6第二章随机森林算法研究与分析72.1 决策树72.1.1 决策树的概念72.1.2 节点分裂72.1.3 决策树分类存在的问题92.2 随机森林分析92.2.1 训练集的随机性92.2.2 特征变量的随机性112.3 随机森林理论概述112.4 随机森林性能指标122.4.1 分类效果性能指标122.4.2 泛化误差和OoB估计142.4.3 随机森林运
2、行效率指标14第三章随机森林算法的实现163.1 决策树的实现163.2 随机森林的构建过程183.2.1 训练集的生成193.2.2 决策树的构成203.2.3 森林的形成203.3 随机森林的构成21第四章随机森林应用与实例分析224.1 随机森林算法应用场合224.1.1 预测能力224.1.2 分类能力224.2 莺尾花分类实例分析234.2.1 数据处理与算法模型23422莺尾花分类实例分析24第五章总结与展望27参考文献28致谢30附录31摘要本文主要讲述如何使用python程序设计语言来实现随机森林算法,以及实现该算法有哪些意义和优点,从而了解到可以解决现实生活中的哪些问题。分类
3、和回归几乎涵盖了我们现实生活中绝大多数问题,而回归问题又可离散化转化为分类,所以本文主要研究分类问题。传统分类算法比如单决策树,都是单个分类器,而将多个分类器集成来进行预测,便是集成学习算法。而集成学习算法代表之一随机森林算法便是本文的一个核心重点,它是以决策树为基础,集成多棵决策树以投票方式输出的结果,应用于很多场合,并在这些场合取得巨大成就。当然,其算法本身还尚未成熟,有很多不足的地方需要改进,尤其是一些特殊情况下,无法实现该算法。本文将针对决策树以及随机森林算法将着重介绍,讲述其演绎过程及这种思想的来源和思想构成原理,以及分析其特点和优势,并且用PythOn将该算法实现,探讨算法改进方法
4、,推动理论性质方面的研究进展。关键字:python;分类回归;决策树;节点分裂;随机森林算法AbstractThisarticledescribeshowtousethePythonprogramminglanguagetoimplementarandomforestalgorithm,andwhataretheadvantagesandadvantagesofimplementingthealgorithm,soastounderstandwhatproblemscanbesolvedinreallife.Classificationandregressionalmostcovermosto
5、ftheproblemsinourlife,andregressionproblemsaretransformedintoclassifications.Therefore,thispaperfocusesonclassificationissues.Traditionalclassificationalgorithmssuchassingledecisiontreesaresingleclassifiers,andintegrationofmultipleclassifiersforpredictionisanensemblelearningalgorithm.Theensemblelear
6、ningalgorithmrepresentsarandomforestalgorithmisacorefocusofthisarticle,itisbasedonthedecisiontree,theintegrationofmultipledecisiontreestovoteouttheresults,appliedtomanyoccasions,andintheseoccasionsmadegreatachievements.Ofcourse,thealgorithmitselfisnotyetmature,therearemanydeficienciesneedtobeimprove
7、d,especiallyinsomespecialcircumstances,thealgorithmcannotbeachieved.Thisarticlewillfocusonthedecisiontreeandtherandomforestalgorithmwillfocusonthedescriptionofthedeductiveprocessandthesourceofthisideaandtheideaoftheideology,aswellastheanalysisofitscharacteristicsandadvantages,andtheimplementationoft
8、healgorithminPython,toexplorethealgorithmtoimprovethemethod,topromotethetheoryNatureresearchprogress.keyword:Python;ClassificationandRegression;DecisionTree;NodeSplit;RandomForest第一章引言1.1 背景介绍在如今大数据、大信息的环境下,到处都存在“信息”和数据”,并且我们也很容易地就能获取到信息和数据,但对这么庞大的信息和数据量我们该如何有效快捷处理和分析,是我们长久以来的热点话题。因此,如何利用现有的科学统计方法和统
9、计工具来处理和分析这些大量的数据信息,成为当代该领域研究数据的热门话题之一,我们希望有一种又快捷又有效处理数据的方式来分析这些信息。在数据处理环节中,有很多方法,但应用最广泛最有效的便是分类方法。它通过训练集产生适合的分类器,用户只要将要分析分类的数据通过这个分类器就能得到该分类器预测的分类结果。分类技术有单分类器和多分类器技术之分,这是由分类器的个数决定的。单分类器虽然推动了分类技术的发展,甚至达到一时巅峰,但是因为其自身的缺陷而遇到了瓶颈。于是,多分类器组合思想便由然而生。简单来说,很多个单分类器按一定规则组合形成了一个群体,这就是多分类器,既继承了单分类器的优势又解决了之前的瓶颈,将多个
10、单分类器的分类预测结果汇总,按一定规则分析从而得到最终结果,本文所要介绍的随机森林算法便是这种多分类器组合的分类方法之一。随机森林这种思想最早产生于1995年,2001年,LeOBreiman做了系统介绍,从此,随机森林成为了人们进行数据挖掘与分析的重要手段。在这些年里,随机森林充分展示其优势和特点,逐渐被人们所喜爱,并被广泛使用,成为数据处理和挖掘的重要手段,也成为各个领域研究人员的热门话题。本文将实现随机森林算法,分析其特点和优势,结合PythOn语言本身的快捷易懂的特点,更加快速地解决数据分析与处理问题。Python程序设计语言这些年来也因为其快捷性被人们所热爱,成为当下越来越热门的流行
11、程序语言,它的特点同样是快捷有效,结合随机森林算法在处理大数据、大信息的问题上有着得天独厚的优势,这也是本文想要着重叙述的地方。1.2 PythonPythOn一种解释型程序设计语言,在1989年问世,1991年发行,其数量庞大的库,使其有另一个外号,胶水语言L顾名思义,它可以把其他语言设计的模块组合起来,实现用户所要的功能,所以它的特点简单来说就是简洁清晰、通俗易懂,方便学者学习和探讨。1.2.1 当代环境下的Python当今社会,庞大的信息量、数据量使得如今的关键不在于获取信息,而在于如何处理和分析信息,PythOn有着得天独厚的优势站在历史的舞台。它的简便、易懂、快捷的特点最终受到人们的
12、青睐,并且在各个领域中得到广泛的应用,其使用人数也是逐年成线性增长。1.2.2 Python的演变20世纪90年代,PythOn问世,直到现在,它已被逐渐广泛应用于Web编程和系统管理任务的处理。1989年12月,GUidOVanROSSUm过圣诞节的时候因为无所事事,闲着无聊便找些事做,于是他开始写一些脚本语言,后来他把这些脚本程序命名为ABC语言。后来GUidO发现他无意间开发的语言竟然如此优美,功能如此强大。但ABC因为其自身的弊端无法弥补,最终不被人们所认可,但GUidO并没有放弃,他吸取ABC语言失败的教训,重新研发程序,这便是后来的Python程序设计语言。现如今,Python越来
13、越受到人们关注和认可,Python的使用率也是呈线性上升的状态。PythOn语言因为其特点和优势,国外很多科研机构都使用该语言,而且有很多大学课程都开始选择PythOn教学,轻松容易。Python有很多扩展库,这些扩展库专用于科学计算,这些扩展库构成的开发环境十分适合工程和技术人员处理实验数据、制图,甚至在科学计算应用程序方面也有很多应用成果。1.2.3 Python的特点介绍Python作为一种高级计算机程序设计语言当然和其他高级语言有相似的地方,但Python自身也有区别于其他语言的地方。说到可比性,可能首先想到的是MATLAB语言,Python因其具有强大的库,所以可以找到替代MATLA
14、B大部分常用功能的扩展库,其次,PythOn相比于MATLAB的昂贵费用,优势显而易见,用户可以不用付任何费用去安装Python和它的大多数扩展库;并且,于MATLAB相比,Python是一种更容易学习、容易理解的语言;最后,PythOn因为有丰富的库的存在,所以可以实现文件管理、网络通信等多种高级任务。PythOn的设计整体风格是清新划一,这也使其成为容易学习、容易使用的计算机语言,从而被大众认可。PythOn具有以下几个优点:(1)简单:其语言本身体现简单主义,编写程序就如同写一个故事,通俗易懂,不用刻意弄清语言本身含义,重在解决实际问题。(2)易上手:对于编程新手来说是最容易上手的一门程
15、序语言,它有专门的说明包,里面语句用法一一详尽。(3)速度快:PythOn是从库中调用程序,这些程序还是由C/C+等语言写的,所以运行速度上还算比较快。(4)免费:使用者可以随意使用、开发,没有费用收取。(5)可移植性:PythOn可在很多不同平台上进行工作。(6)可扩展性:有一些算法和公式是开发者希望保密的,可以将其用其他语言编译出来,在运用的时候只需调用即可。(7)可嵌入性:在C或者C+语言编译中可以夹杂一些Pylhon语句,充当一个脚本,方便用户使用。(8)独特的语法:Python有自己独特的语法规则区别于其他语言,使其更加灵活简便。1.2.4 Python的功能与应用Python既然有这么多优点,那这种语言都有哪些功能,可以完成那些任务呢?前文已经说了,它有很强大的库,这些库的种类十分丰富,具体可以完成以下工作任务:(1)系统编程:有API,能够有效管理和维护系统,具有系统管理员想要的理想编程工具Linux标志性语言。(2)图形处理:具有PIL、Tkinter等图形库,从而能方便地处理图形。(3)数学处理:提供NUmPy扩展,这些扩展有大量接口,而这些接口都是直接连接到标准数学库中。(4)文本处理:提供re模块,利用re模块进行判断,可以预算正则表达式,从而分析数据模块。(5)数据库编程:提供PythOnDB-API模块可以加快程