《大数据杀熟背景下的数据挖掘技术与分类算法研究》18000字(论文)_第1页
《大数据杀熟背景下的数据挖掘技术与分类算法研究》18000字(论文)_第2页
《大数据杀熟背景下的数据挖掘技术与分类算法研究》18000字(论文)_第3页
《大数据杀熟背景下的数据挖掘技术与分类算法研究》18000字(论文)_第4页
《大数据杀熟背景下的数据挖掘技术与分类算法研究》18000字(论文)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

大数据杀熟背景下的数据挖掘技术与分类算法研究摘要本文以近年来数据量激增的现象以及大数据杀熟现象为背景,对数据挖掘的发展历程、国内外研究现状、过程展开了叙述。在文中也结合近年来一些比较火热的社会现象,提出了数据挖掘在未来可能的应用会比较多的领域。另外就数据挖掘中的分类算法展开了研究,对常见的分类算法利用Python语言进行了实现,对结果进行了比对。在未来的日子里,数据量仍然会大幅增长,数据挖掘的用武之地也越来越多,这种技术也显得越来越重要。将数据挖掘技术和分类算法合理的运用在处理海量数据的任务中,可以帮助我们节省大量的时间,提高效率;也更能发现数据背后的秘密,为我们提供有用且准确的信息。关键词:数据挖掘;决策树算法;贝叶斯算法;最近邻算法目录TOC\o"1-3"\h\u27937摘要 19284Abstract 12482目录 2310651.绪论 4187551.1.研究现状综述 4165961.2.选题意义 462431.3.国内外研究现状 4149441.3.1.国外研究现状 4287001.3.2.国内研究现状 5314231.4.数据挖掘的应用前景 667851.4.1.生物医学和DNA领域的应用 6293541.4.2.Web领域的应用 683381.4.3.金融领域的应用 675871.4.4.视频领域的应用 7215691.5.论文所要研究内容 782962.数据挖掘技术 7162862.1.数据挖掘技术的发展历程 871442.2.数据挖掘的过程 8190662.2.1.确定挖掘目的 9248022.2.2.数据准备 9127972.2.3.数据挖掘 9208992.2.4.结果分析 925592.3.数据预处理 9272532.3.1.进行数据的预处理的原因 9322972.3.2.数据预处理详解 10283463.分类算法的研究 11310193.1.分类算法总述 11265833.2.决策树算法详解 11190793.2.1.决策树算法基本思想与流程 11195303.2.2.ID3算法 13265573.2.3.C4.5算法 1563073.2.4.Cart算法 1730423.3.贝叶斯算法详解 20126133.3.1.朴素贝叶斯算法的基本思想与流程 20207103.3.2.朴素贝叶斯算法的实现 21233133.3.3.朴素贝叶斯算法的优缺点 22307443.4.最近邻算法详解 22190403.4.1.最近邻算法的基本思想与流程 229293.4.2.最近邻算法的实现 237723.4.3.最近邻算法的优缺点 2443713.5.分类算法的对比 24228284.实现算法相关内容 2595394.1.数据集介绍 2587794.1.1.wine数据集的介绍 26235474.1.2.Balloons数据集的介绍 28241944.2.所使用语言、模块、编译器介绍 29169794.2.1.Python语言的介绍 2997604.2.2.Sklearn库的介绍 2963144.2.3.Matplotlib库的介绍 30174454.2.4.Pandas模块的介绍 31249874.2.5.Jupyternotebook的介绍 31281494.2.6.graphviz模块的介绍 3134255.结论 3218851参考文献 33

绪论研究现状综述自从1989年知识发现一次处初露头角之后,历经数十年的发展,数据挖掘已经从当初那个只配出现在专题讨论会上的小角色一跃变为了万千专家学者在国际性学术会议上一起研究探讨的极具潜力的技术。国内外对数据挖掘的研究现在来看仍然主要集中在三个方面:数据挖掘的算法、理论、应用。毕竟一种技术的出现归根结底还是要用于生活、生产来服务于人类,为人类创造更多的便利和好处的。所以对一种技术的研究最终一定会跑向应用。数据挖掘技术的算法数量庞杂,这些算法主要可以分为三个大类:分类算法、关联规则分析算法、聚类算法。其中分类算法又可以细分为:决策树、贝叶斯、最近邻、神经网络、SVM;关联规则分析算法细分的结果是:Apriori算法、FP树算法、序列模式;聚类算法进行细分包括:K均值算法、基于密度的聚类方法、使用高斯混合模型来期望最大化聚类、层次聚类算法。无论是国外还是国内已经出现了很多技术成熟而且使用价值很高的软件,数据挖掘的未来值得期待。选题意义当今世界飞速发展,第三次工业革命带来了计算机之后,世界的发展速度越来越快。近年来,随着各种社交媒体,APP的出现,每天都有源源不断的数据产生,当今的世界,可以说是大数据的时代。在当今的世界,各个行业的数据信息即将达到爆炸的程度,并快要突破人们收集信息的极限。数据量的繁多与格式的复杂多样让我们越来越感受到数据信息的重要性,毫不夸张地说,在现如今,数据就是金钱。大数据时代,各行各业的数据信息量可谓是达到了爆炸的地步,并且也快要突破人们搜集信息的极限,再加之大数据的四大特点就是海量、高速、多样和易变。针对这种现象,研究人员也在摸索解决的方法,研发出了数据挖掘技术,在如何寻找有用信息、如何创造出有用信息等方面,已经得到一些发展的成果。通过数据挖掘技术,能够将有效的信息从一堆复杂无序的原始数据中提取出来,发挥其最大的用处。深入挖掘数据信息中存在的价值,合理运用数据挖掘技术提升数据价值,不仅能够及时掌握市场行业的未来发展动向,也能够帮助一些企业解决当前存在的发展危机,创造出更多的生产价值与自我提升空间。国内外研究现状国外研究现状知识发现和数据挖掘在经过十几年的发展之后已经成为了数据库领域中不可或缺的研究方向之一。在上世纪八十年代末,在美国底特律举办了一次轰动世界的会议,这个会议就是第十一届人工智能会议,能轰动世界大概就是因为KDD一词在这次会议上初放异彩,时间一转来到上世纪九十年代中期,首届KDD&DataMining国际学术会议于加拿大蒙特利尔举办,之后每年这个方面的国际性学术会议都如约而至。历经十余年的不懈钻研,有关数据挖掘技术这一领域,研究人员已经取得了令人满意的成果,许多开发软件的公司已经开发出了可用于数据挖掘的软件,而且广泛应用于北美、欧洲的一些国家。从目前来看,对数据挖掘的研究仍然主要集中在技术、理论和研究三个方面。在市场需求的推动下,在研究人员的不懈努力下,市面上已经出现了一些用来进行数据挖掘的软件,这些软件以应用价值高、技术成熟而闻名,比如:KnowledgeStudio、IBMIntelligentMiner、SPSSClementine、CognosScenario。在众多研究人员的不懈努力下,数据挖掘目前来说经常使用的几大算法分别是:决策树算法、人工神经网络算法、遗传算法、粗糙集算法、模糊集算法、关联规则算法。细分之后一些应用很好也广受大众喜爱的算法具体是:C4.5算法(在ID3算法的基础上进行了改进)、K-means算法(这是一种聚类算法,其原理简单,很容易实现)、SVM算法(这是一种分类算法,策略由原来的向高维空间的非线性映射变换为了使用内积核函数,有效避免了高维度空间的复杂性)、Apriori算法(这是有一种极具影响力的挖掘关联规则的算法)、PageRank算法(用来给网页排名,是Google一种十分重要的算法)、Adaboost算法、KNN算法、朴素贝叶斯算法。如下图所示:图SEQ图\*ARABIC1数据挖掘经典算法国内研究现状相比较于国外的研究,国内在这一方面的研究可谓是虽迟但到。目前,国内对于进行数据挖掘要使用的软件的研发这一方面,主力军还是高校,比如MSMiner和ScopeMiner。国内对于数据挖掘技术的研究方向与国外的也大差不离,还是主要集中在了数据挖掘的算法、理论以及应用这三个方面。可以分为三大区域:数据挖掘方法;数据挖掘的应用;Web挖掘[21]。数据挖掘经典的技术的如下图:图SEQ图\*ARABIC2数据挖掘的经典技术数据挖掘的应用前景从目前来看,数据挖掘未来可能的应用领域主要集中在以下几个方面:生物医学和DNA领域的应用生物信息以及基因信息对于人类是十分重要的,了解掌握这些信息将有助于人类利用这些信息来治愈疾病,解决一些医学难题,给更多的人送去希望。但任何一个了解生物的人都知道,基因组合的数量是极其庞大的。就拿人类基因组来举例,人类基因组由23对染色体组成,大约含有30亿个DNA碱基对,其中的某些碱基对所含基因数量大约在20000与25000之间。这么来看,生物信息纯靠人工是无法完全提取出来的,所以数据挖掘在这个领域就有了用武之地。但是这也涉及到了计算机专业的学生可能不是很懂生物,懂生物的学生又不太了解数据挖掘的问题,二者的交叉学科近几年也发展很快,相信数据挖掘在这个领域,在不久的将来一定会大放异彩的。Web领域的应用随着互联网的迅猛发展,各类网站,电子商务蓬勃兴起。十几年前无人问津的淘宝、京东,现在几乎成为了人们生活的必需品,在加之近几年拼多多的快速发展,可以说这一领域积攒的数据也是十分庞大的。那么利用这些数据,从中提取出有用的信息,就可以帮助顾客拥有更好的购物体验,免受自己不喜欢事物的打扰。从这些纷繁复杂的数据中,分析出顾客的喜好,给顾客推送他们可能喜欢的东西,既节约了顾客的时间也能给公司带来更多的收益,可谓是一举两得。金融领域的应用随着经济的快速发展,人们的财富也在日益增多,于是很多人开始有了理财的想法。已经涉及或者正打算入坑理财的人一定都知道今年股市的行情不是很好,有人甚至赔光了身家财产。在金融领域,投资风险极大,可能赚的盆满钵满,也可能赔的身无分文。所以,在这个领域就很有必要利用数据挖掘来分析各种关联信息,使投资风险最小化。随着祖国越来越强大,经济越来越繁荣,相信会有更多的人投身于这个行业,而数据挖掘在这个领域也必将拥有姓名。视频领域的应用近年来,抖音、快手、今日头条这些软件以迅雷不及掩耳之势火遍大江南北,可以说百分之九十的年轻人都或多或少使用过这些软件,更有甚者一天中的绝大部分时间时间都用在了利用这些短视频软件刷短视频上,这些软件也是有很强的吸引力,这些软件的吸引力来自于精确地给用户推荐用户喜欢的内容,刷着自己喜欢的东西,很容易停不下来。这些软件火了之后,出现了很多类似的软件,比如好看视频、微视、刷宝等,足以看出这个领域现在的火爆,基于亿万用户产生的信息,利用数据挖掘技术进行分析,做到精准推荐,既能让用户放松,也能给软件带来用户,从而为公司创收,更重要的一点就是有利用信息共享。论文所要研究内容本论文的研究内容为:数据挖掘技术的发展历程、研究现状数据挖掘技术未来用途较多的应用场景分类算法总述常用的三种分类算法的基本流程、原理、代码实现涉及到的语言、模块的介绍数据挖掘技术数据挖掘技术,见名知意,就是指一种技术,可以达到从数量多且繁杂的数据中找到有价值意义的数据信息。就一般情况来说,数据挖掘主要应用在文本数据以及图像数据中,作为分析、整理或者预测风险的基础技术手段,数据挖掘技术能够在海量的信息数据中精确寻找到目标数据内容[8]。近年来,随着智能手机,平板电脑以及个人笔记本电脑的普及,每个人无时无刻都在产生着数据,数据量出现了爆炸式的增长。面对日益庞大而且增加极其快的数据,对这些数据的管理就需要利用到数据库技术或者数据仓库技术了。而且从现实世界中挖掘出的数据往往不像已有数据集那样规整,可能单纯只靠一种或少数几种数据挖掘算法是难以完成对其的处理的,为了达到从凌乱的数据中心提取到有用信息的目的还需要配合使用数据清洗、数据转换等预处理数据的方法。数据挖掘的主要任务大致可以简单的概括为数据汇总,概念描述,分类,聚类,相关性分析,偏差分析,建模这几类。数据挖掘是一门在多学科发展的基础上发展起来的新兴学科,涉及到了很多我们耳熟能详的学科,比如有:数据库技术、人工智能、机器学习、数据可视化等多个行业和领域。数据挖掘技术的发展历程数据挖掘技术的发展与相关学科的发展是紧密相关的,伴随着数据库技术的发展日益成熟以及应用日益增多,数据量积累的越来越多,在庞杂的数据背后隐藏着的重要信息开始吸引了越来越多科学家的注意力。通常来说储存数据会使用到是数据库管理系统,分析数据会使用到的就是机器学习的方法,这二者的结合促进了数据库中的知识发现的诞生。二十世纪八十年代末,在美国底特律举行了一次另学术界发生翻天覆地变化的会议——第十一届人工智能国际联合会议的专题讨论会,在这次会议上知识发现(KDD)一词第一次在公众场合出现。在此之后,迄今为止由美国人工智能协会负责召开的以kdd为主题的国际研讨会已经召开了很多次,从最初的只有少数人参与的专题讨论会发展成为世界各地学者争先抢后想要参加的国际性学术会议;学者们在会议上研讨的重点也在慢慢发生着改变,从最初的单纯只是想找到新的方法转变为了更多的关注应用,集成多种发现策略和技术来解决问题也成为了学者们关注研究的重点,多学科之间的相互交叉渗透更是成为了研究中的香饽饽。所谓的知识开发和探索(kdd)中最常用、最核心的构成部分之一就是数据挖掘(dm)。全球知识发现与数据挖掘技术第四次会议于1998年在国际性的学术会议上大放异彩,不仅是来自世界各地的科学家,研究人员在学术方面进行了广泛深刻的讨论,而且有来自全球的30余家软件公司给我们生动耐心地介绍展示了他们先进的数据挖掘技术和相应的软件产品,其中许多已经应用于北美和欧洲等地区。经过十几年的不断探索和发展,数据挖掘已成为了一个完全自成系统的应用性学科。数据挖掘的过程图SEQ图\*ARABIC3数据挖掘的流程数据挖掘的过程大致上可以分为以下几步:确定挖掘目的这个阶段主要就是为了明确数据挖掘的目的,数据挖掘得出的最终结果可能是无法预见的,但是一开始的目的应该是可以预见的,弄清楚数据挖掘的目的将会达到一举两得的效果。数据准备数据集的选择:根据挖掘的目的选择合适的数据集。数据的保存与预处理:通过深入地研究保存数据的质量,为进一步分析数据所做好的准备。并且确定了将要开展的挖掘运算操作。常见的进行数据预处理的方法主要包括以下几种:1)数据清洗:这个方法主要是为了针对缺失值、噪声、距离群点等情况进行处理。2)数据集成:这个集成放大主要是涉及到了适用于识别、冗余、相关性的分析。3)数据归约:维归约、数据压缩、数量归约这三种是目前来看最受欢迎和最为常见的数据归约方法。4)数据变换:光滑,属性创建,聚集,离散化以及对概念进行分层。数据的转换:在使用数据挖掘算法之前,很关键也很重要的一步就是数据的转换了。将我们经过保存预处理的数据转换成一个合适的分析模型。利用合适的分析模型在加上合适的算法才能达到事倍功半的效果。数据挖掘这个阶段实际的挖掘工作,包括:先决定怎么样来创建假设:这个阶段可以分为两种,一种是利用数据挖掘系统给用户创建假设;另一种是以数据库中可能出现的知识为基础,从而产生假设。前一种称为发现型的数据挖掘,后一种称为验证型的数据挖掘REF_Ref22990\r\h[21];选择合适的工具:利用前面提到的数据挖掘方法挖掘数据库中的知识[21];证实发现的知识[21]。结果分析这个阶段主要是为了解释并评估结果,通常会用到数据可视化工具。分析所得的结果主要是针对模型的优缺点的,客观公正的看待自己所建立的模型。改进就是利用分析的结果对模型进行改进优化。数据预处理进行数据的预处理的原因我们在使用数据挖掘技术的时候,会利用到一些算法,因此我们十分希望自己所得到的数据能够满足算法的要求,便于得出结果。可事实上,在我们的日常生活中,由于各种有意无意的行为,经常会导致数据的缺失、不完整、甚至是错误数据,这对于我们进行数据挖掘十分的不利,因此进行数据预处理至关重要。数据预处理详解数据预处理的主要手段包括:数据清理、数据集成、数据规约以及数据变换与数据离散化。数据清理的主要任务就是处理缺失值、噪声数据。我们可以分为两部分来看,首先来看对缺失值的处理。缺失值的处理分为两种思想,一种是不要缺失值了,另一种是想办法补起来。那么何为不要缺失值了,在数据挖掘中称为忽略元组,大多数情况下是用于缺少类标记的时候,而且只有在针对于元组有不止一个属性缺失值的情况效果才会好。至于第二种思想,就可以细分为五类了。这五种补缺失值的方法分别为:人工填写缺失值;使用一个全局常量填充缺失值;使用属性的中心度量填充缺失值;使用与给定元组同一类的所有样本的属性均值或中位数;使用可能的值填充缺失值。最后一种方法就是最常用最受研究者青睐的方法,利用了已有的数据进行了合理的推测得到弥补缺失值的数据,要比其他方法的结果更可靠一些。然后我们来看对噪声数据的处理,仍然是有两大类方法。第一类是使用回归技术,找一个合适的函数拟合非噪声数据,本质上还是舍弃。第二类是使用离群点分析,通过利用形成簇来去掉离群点。第三类就是利用分箱的方法来光滑数据,具体的又有用箱中位数光滑、用箱边界光滑。数据集成的主要任务就是进行合并,合并之后就会涉及到同名异义与异名同义的问题了,即数据挖掘中的术语:实体识别。数据集成的另一大任务就是冗余和相关性分析。这一任务可以利用卡方相关检验、计算数据间的相关系数、计算数据间的协方差来实现。数据归约的分类在上文中已经提过了,可以分为三类。维归约这一类,本质上思想还是化简,展开来说就是要精简随机变量或特征的数量。在维归约中常见的方法有小波变化和PCA。数量归约这一类,本质上是替换的思想。具体来说就是把原数据进行替换,用来替换原数据的是那些较小的数据。数据压缩这一类,见名之义,压缩的目的就是为了变小,便于存放。数据压缩就是使用一些变换,将原数据压缩。数据变化和数据离散化这一部分主要包括:光滑、属性构造、聚集、规范化、离散化、由标称数据产生概念分层。规范化常见方法如下:最大—最小规范化: vi'=vi−minAZ-score规范化: vi'=vi−Aσ其中A是属性A的均值。离散化的常见方法有:通过分箱离散化,通过直方图分析离散化。这两种都是无监督的离散化技术。分类算法的研究分类算法总述前文中提到数据挖掘的任务之一就是分类,在现实生活中我们每个人每天都在有意无意间做着分类,分类现象在生活中随处可见。比如:为了环保而实施的垃圾分类;为了方便查阅书籍图书馆的书都会分门别类放置;为了避免自己的生活被无止境的打扰,我们一般都会分出骚扰电话进行拦截;为了使用方便,生活中我们会将自己的物品分类归置好分类在生活中处处可见,也为我们的日常生活提供了很多便捷之处,于是我们不禁在想,如果将分类用于生产,那岂不是会有意想不到的收获吗。于是在众多科学家的研究下,出现了几大分类算法:决策树算法[24];基于规则的分类器[24];最近邻算法[24];贝叶斯分类算法[24];人工神经网络算法[24];支持向量机算法[24]。分类算法的目的就是利用自己设计好的分类函数或分类模型,对数据库中的数据进行操作,确定某个数据是属于哪个类别。其中,最常见的就是决策树算法、贝叶斯算法、最近邻算法,本文将着重介绍这三种算法。决策树算法详解因为决策树算法兼具了简单易懂和可解释性强这两大优点,深受大众的喜爱和追捧,在分类算法中占据了一席之地,广泛存在于数据挖掘和机器学习中。J.R.Quinlan于1979年提出并在之后逐渐修正完善的ID3算法[18],是决策树算法中最先面世的算法,当然其也有很多的不足。后来有学者在ID3的基础之上推出了效率更高、实用性更强的C4.5算法,它不仅适用于分类问题,又适用于回归问题[16]。近几年,在学术界出现了新的宠儿——选择性集成,这个概念是由西瓜书的作者周志华教授提出的。而且近年来出现了一种称为GASEN-b的新的选择性集成算法,这个算法同样也是由西瓜书的作者周志华教授所提出的,这个算法是以遗传算法为基础的。决策树算法基本思想与流程决策树说白了就是一种类似于树的层次结构,决策树的根结点相当于树的根部,决策树的内部结点相当于树中靠内的叶子,决策树的叶结点就相当于树最外层的叶子。每棵决策树也像树一样,因此我们也可以得知一个根节点、一些内部节点、一些叶结点就构成了一棵决策树。叶结点也称为终结点。与叶结点对应的是决策结果,剩下的每个结点对应的都是一个属性测试;每个结点会包含哪些样本集合,这是根据属性测试的结果来进行划分的;根结点包含的是整个样本集合。决策树的基本流程采用的是分而治之的思想。决策树的结构如下图:图SEQ图\*ARABIC4决策树的结构决策树算法的基本流程如下表所示:表SEQ表\*ARABIC1决策树算法的基本流程输入:训练集D={(x1,y1),(x2,y2),,(xm,ym)}属性集A={a1,a2,,ad}过程:函数TreeGenerate(D,A)生成结点nodeifD中样本全属于同一类别Cthen将node标记为C类叶结点;returnendififA=∅ORD中样本在A上取值相同then将node标记为叶结点,其类别标记为D中样本数最多的类;returnendif从A中选择最优划分属性a*;fora*的每一个值do为node生成一个分支;另Dv表示D中在a*上取值为的样本子集;ifDv为空then将分支结点标记为叶结点,其类别标记为D中样本最多的类;returnelse以TreeGenerate(DV,)为分支结点endifendfor输出:以node为根结点的一棵决策树从这段伪代码中可以看出,对于决策树算法来说,重中之重就是第八行的内容——选择最优的划分属性在结点处进行分裂,而基于不同的划分属性方法,决策树算法又可以细分为ID3算法、C4.5算法以及CART算法。下面我将具体介绍这三种算法。在应对过拟合的问题方面,决策树采取的是剪枝方法。剪枝可以分为预剪枝和后剪枝两种。预剪枝:正如名字所说,预剪枝就是先评估再决定划不划分。具体来说就是在生成一棵决策树的过程中,对于每个结点,在选定了最优划分点划分之前先要进行评估。对于候选的划分点,若对其进行划分对于决策树泛化性能的提升没有帮助的话,那么就停止对这个划分点的划分,并将当前的这个结点标记为叶结点。后剪枝:见名知意,后剪枝就是为了防止出现过拟合的问题,所以在完整的决策树建立之后,对已经建立的完整的决策树进行评估,根据评估结果进行剪枝。具体来说就是先利用从样本集中划分出来的训练集进行训练拟合构造出完整的决策树,然后由下到上,对内部结点进行评估,如果对于一个内部结点来说,将这个内部结点对应的子树用叶结点来替换可以带来性能的提升,那么就将该内部结点替换为叶结点,同时删去该内部结点原来有的子树。ID3算法ID3是决策树算法的其中之一,利用信息增益来对样本集中的属性进行划分,递归的生成决策树,从而起到做好分类的效果,是决策树最经典,出现最早的一种算法。ID3算法的基本思想ID3算法的基本流程与上文中的伪代码一致,ID3算法的具体划分规则如下:熵是一种用来度量某一系统混乱程度的标准。在刚开始的样本数据集中肯定是凌乱无比的,熵值会很大,我们为什么要构建决策树呢?就是为了减小数据的不可预见性,使数据更纯。信息熵是一种十分常见的用来衡量一个系统纯度的标准,在信息熵的基础上进行计算可以得到信息增益,利用信息增益来选择最优的划分属性进而确定划分点就是ID3算法的核心所在。假定样本集合D中第k类样本所占的比例为pk(k=1,2,,|y|),那么D的信息熵定义为: (SEQ(\*ARABIC3)信息熵的值越小,代表样本集合越纯,越不混乱。假定样本集合D中某一离散属性为a,这个属性一共有V种取值,DV表示一个样本集合,这个样本集合由数据集D中那些在离散属性a上的取值为av的样本个所构成,这个样本集合的个数记为|DV|,则利用这一离散属性a对整个数据集进行划分,对应的信息增益就可以用以下公式计算: (SEQ(\*ARABIC4) 其中可以看成是划分属性所占的权重。前文中我们提到信息熵的值越小代表这个系统越好,那么结合信息增益的公式来看,在样本集合确定的情况下,即在Ent(D)确定的情况下,根据某一属性来对样本集进行划分,根据信息熵越小越好的原则来看,信息增益越大,那么利用这一属性来进行划分就越好,代表纯度提升度越大。ID3算法的实现利用wine数据集与sklearn模块,实现了ID3算法,模型的准确率为94.44%,所画出来的决策树为:图SEQ图\*ARABIC5利用ID3算法构建的决策树我还利用matplotlib对算法所划分的测试集以及利用模型进行预测所得出的结果进行了可视化,从可视化的结果中我们可以更加清楚明晰的了解到这个模型的分类效果,如下图所示:图SEQ图\*ARABIC6模型效果可视化ID3算法的优缺点ID3算法的优点:训练过程中包容缺少属性值的实例。理论简单,容易实现,受噪音影响很小。速度快,适合于高维数据。ID3算法的缺点:对属性样本数较大的属性有倾向性,受计算信息增益的影响,数量越多。只能处理离散属性,对于连续属性无法处理。不支持剪枝操作。C4.5算法C4.5算法的基本思想C4.5算法和ID3算法师出同门,都归属于决策树算法。两者不同之处就是对属性划分所使用的标准不一样。C4.5基于ID3算法又高于ID3算法,弥补了ID3算法的一些不足,但也有自己的问题。从信息增益的计算公式中我们可以分析出这样的信息:可取值数目越多,权重就越大,权重越大那么利用这样的属性进行划分就会越好,这也导致了ID3算法有所局限。C4.5算法针对于这一点进行了改进,不在直接使用信息增益来选择属性从而选择出最优划分点,而是使用了信息增益率来选择属性进行划分。利用信息增益除以了属性的固有值,便得到了信息增益率。对于ID3算法无法处理连续值的劣势,C4.5所做的改进是利用二分法的思想,将连续属性离散化,具体操作如下:假定这个连续属性是m,则排序成{m1,m2,,mn},排序的规则是按升序,其中m1,m2,,mn代表这个属性的所有取值。利用相邻的属性的取值构成的区间[mi,mi+1),从这个区间中任意取值所产生的划分结果是一样的。一般来说我们会取区间的中位点来作为候选划分点,即: (SEQ(\*ARABIC5) 接下来我们来计算信息增益率,计算的时候是针对每个待选的划分点的,我们会分别计算每个待选划分点所对应的信息增益率,找到那个能使得信息增益率最大的待选划分点,将这个候选划分点作为最终的划分点。具体的计算如下所示: (SEQ(\*ARABIC6)其中在连续属性上取值小于候选划分点的样本就归在类里,在这一属性上取值大于候选划分点的样本归在类里。针对于非连续的属性,信息增益率的计算做了改进,具体的计算公式为: (SEQ(\*ARABIC7) (SEQ(\*ARABIC8)IV(a)称为属性a的固有值。C4.5算法化简为繁,称之为化简为繁的原因如下。C4.5算法没有采用直接选取信息增益率最大的候选划分属性来作为最优划分属性的方法,而是采用了一种启发式的方法:先利用信息增益,筛选掉一部分属性。具体来说就是要先从所有的候选划分属性中筛选掉那些信息增益低于平均水平的属性,留下那些信息增益较高的属性。然后从余留下来的这些属性中再来选择信息增益率最高的属性来作为最优的划分属性。虽然增加了运算量但是却在理解性方面有了很大的提升。C4.5算法的实现C4.5算法我利用了Balloons数据集,能编写代码实现,所得到的结果如下图:图SEQ图\*ARABIC7C4.5算法所建立的决策树C4.5算法的优缺点C4.5算法的优点:弥补了ID3算法的缺点,使用信息增益率来选择最优划分属性。分类结果较为可靠。能够处理具有连续值的属性。C4.5算法的缺点:用信息增益率代替信息增益选择最优划分点的策略带来了对取值数目较少的属性的由偏向性的问题。算法的效率非常低,算法的低效来源于C4.5算法在运行的过程中需要对数据集进行多次顺序扫描和排序。在选择最优划分点的时候并没有考虑条件属性间的相关性问题,有可能会影响正确性。Cart算法CART算法的基本思想CART算法的英文全称是classifactionandregressiontree,从其英文全称中我们可以得知CART算法一个很大的特别之处——不单只适用于分类也适用于回归。CART算法的核心思想有两个,第一个思想就是使用训练样本集来递归的对属性进行划分从而生成决策树;第二个思想就是进行剪枝预防过拟合的现象。而且CART算法在处理分类问题的时候从本质上来说就是在生成一棵二叉树。也就是说,每次都会根据样本点在每个属性上的每种取值与利用基尼指数算的划分标准是否相等来把数据分成两部分。CART算法在用于解决回归问题时是使用平方误差最小准则作为评估标准来选择最优划分点;在用于解决分类问题的时候是使用基尼指数作为评估标准来选择最优划分属性的。与熵类似,基尼值也是一种经常用来衡量一个数据集的纯度的标准。基尼值越小说明数据集越纯。基尼值的计算公式为: (SEQ(\*ARABIC9)对于某一属性a来说,其所对应的基尼指数的计算公式为: (SEQ(\*ARABIC10)我们会选择将那些基尼指数取值最小的属性来进行结点分裂。Cart算法的停止条件是结点中样本个数小于阈值,或者样本集的基尼指数小于指定阈值,或者没有更多特征[28]。图SEQ图\*ARABIC8CART算法的基本流程Cart算法的实现利用wine数据集与sklearn模块,实现了CART算法,模型的准确率为96.3%,所画出来的决策树为:图SEQ图\*ARABIC9CART算法所构建的决策树我还利用matplotlib对算法所划分的测试集以及利用模型进行预测所得出的结果进行了可视化,从可视化的结果中我们可以更加清楚明晰的了解到这个模型的分类效果,如下图所示:图SEQ图\*ARABIC10CART算法效果可视化Cart算法的优缺点Cart算法的优点:能够处理连续值,能处理离散值,也支持剪枝。既可用于分类问题也可用于回归问题。简单直观。Cart算法的缺点:受数据集的变化影响较大,哪怕是一点点的代表也会导致树结构的巨变。分类决策不应该由某一属性决定,应该由一组属性来决定。贝叶斯算法详解朴素贝叶斯算法的基本思想与流程朴素贝叶斯算法的理论基础是贝叶斯定理。Bayes’theorem诞生于18世纪,是由英国数学家ThomasBayes提出[29],在概率论领域中起着十分重要的作用。贝叶斯定理是用于解决随机事件A与B的条件概率的问题的。P(A):代表A事件发生的概率,P(B):代表B事件发生的概率;P(A|B):B事件发生的条件下A事件发生的概率,A事件发生的后验概率;P(B|A):A事件发生的条件下B事件发生的概率,B事件发生的后验概率。用这四个概率中已知的三个概率进行推测得到第四个概率,这就是贝叶斯定理所能解决的问题。例如:(SEQ(\*ARABIC11)就可以通过已知的P(A|B),P(B),P(A)来计算P(B|A)。朴素贝叶斯算法的基本思想是:针对已经知道的待分类样本,当该样本发生的时候,计算所有可能的类别出现的概率,最后所求项的类别就是计算得到的概率最大的类别。那么朴素贝叶斯的分类过程是怎么样的呢?表SEQ表\*ARABIC2朴素贝叶斯算法的过程设X={a1,a2,,am}为一个待分类项,而每个a为X的一个特征属性。类别集合为:C={y1,y2,,yn}。计算P(y1|X),P(y2|X),,P(yn|X)。如果P(yk|X)=max{P(y1|X),P(y2|X),,P(yn|X)},则X的类别为yk。整个过程中最重要的就是第3步计算条件概率,依据贝叶斯定理我们可以得出:(SEQ(\*ARABIC12)P(X)对于所有类别都是一样的,所以我们需要做的就是最大化分子,最大化了分子就可以得出概率最大的类别,计算如下:(SEQ(\*ARABIC13)图SEQ图\*ARABIC11朴素贝叶斯的分类过程为了避免因为训练集中从未出现过的属性其概率为0而在最后计算的时候因为乘了0导致整个式子为0的情况发生,我们在朴素贝叶斯算法中使用的是拉普拉斯修正方法,即:(SEQ(\*ARABIC14)(SEQ(\*ARABIC15)xi的含义是x在第i个属性上的取值,Dc,xi代表一个样本集合,这个样本集合要满足两个条件,第一个条件是分类结果为C;第二个条件是在第i个属性上取值为xi。这个样本集合就是由这样的样本组成的。的含义是训练集D中可能出现的类别总数,Ni的含义是第i个属性可能出现的取值总数。朴素贝叶斯算法的实现利用的仍然是wine数据集加sklearn模块,用朴素贝叶斯算法进行分类准确率为98.15%,可视化得到的结果为:图SEQ图\*ARABIC12朴素贝叶斯的效果可视化朴素贝叶斯算法的优缺点朴素贝叶斯算法的优点:朴素贝叶斯算法具有极其成熟的理论基础——贝叶斯定理,有稳定的分类效率。在小规模的数据集上表现良好,在增量式的训练方面表现良好。对缺失数据不是十分敏感,可以用拉普拉斯法来进行修正。朴素贝叶斯算法的缺点:要求个属性之间相互独立,但现实生活中很难保证相互独立,所以经常导致效果不是很好。输入数据的不同的表达形式对结果影响很大。朴素贝叶斯要通过数据和先验概率来确定后验概率,从而决定分类,所以分类决策存在一定的误差。最近邻算法详解最近邻算法的基本思想与流程最近邻算法是另一种常见且重要的分类算法,在非参数法中有着重要的地位,具有很高的应用价值[16]。同时,最近邻算法也拥有十分成熟的理论基础,尤其是在用于文本分类的时候,效果特别好。最近邻算法的核心思想是由距离未标记样本最近的K个最近邻来决定未标记样本的类别。未标记样本的类别和与已知类别的距离最近的K个邻居一致。最近邻算法假定所有实例都是属于n维欧式空间中的点。算法的实现过程是:首先计算距离:选择一个点,计算其与其他点之间的距离确定邻居:确定合适的K值,找出K个邻居统计找最大:对算出的最近的K个距离进行统计,找出分类比例最大的,即为对应的类别距离度量:在计算相似性的时候,一般使用欧式距离。Lp距离的计算公式为:(SEQ(\*ARABIC16)当p=1的时候Lp就是常说的曼哈顿距离,当p=2的时候,Lp距离就是更为常用的欧式距离。N为空间中的两个点(X1,X2),之间的欧式距离为:(SEQ(\*ARABIC17)表SEQ表\*ARABIC3最近邻算法的伪代码输入:A[n]为N个训练样本的分类特征;

k为近邻个数;选择A[1]至A[k]作为x的初始近邻;计算初始近邻与测试样本x间的欧氏距离d(x,A[i]),i=1,2,...k;按d(x,A[i])从小到大排序;计算最远样本与x间的距离D,即max{d(x,A[j])|j=1,2...k};for(i=k+1;i<n+1;i++)计算A[i]与x间的距离d(x,A[i]);If(d(x,A[i])<D)then用A[i]代替最远样本;按照d(x,A[i])从小到大排序;计算最远样本与x间的距离D,即max{d(x,A[j])|j=1,...i};计算前k个样本A[i]所属类别的概率,i=1,2,...k;具有最大概率的类别即为样本x的类;end

for输出:x所属的类别。最近邻算法的实现仍然利用wine数据集和sklearn模块,得到的准确率为79.63%,因为K值对KNN算法的影响非常大,为了能得到最好的分类效果,我先对最佳的K值进行了搜索,将结果进行可视化之后发现,最佳的K值应该是4。然后我对KNN分类器的分类效果进行了可视化。图SEQ图\*ARABIC13寻找最佳K值图SEQ图\*ARABIC14KNN算法分类效果可视化最近邻算法的优缺点最近邻算法的优点:简单有效,理论成熟。算法复杂度低。方便进行多分类任务。最近邻算法的缺点:计算量的大,要计算到每个点之间的距离。k值的选取很关键,k太小容易过拟合,k太大容易欠拟合。对于离群点、不平衡样本很敏感。是一种消极学习的方法。分类算法的对比上文中我对ID3、CART、C4.5、朴素贝叶斯、最近邻算法的思想以及基本流程进行了论述,并且利用Python语言基于wine数据集和Balloons数据集进行了实现。其中都对wine数据集进行分类,所使用的算法不同得出的准确率也有所不同。将代码运行三次,得到的准确率情况为如下。ID3算法的准确率分别为:94.44%、88.89%、92.59%;CART算法的准确率分别为:87.04%、96.30%、94.44%;朴素贝叶斯算法的准确率分别为:98.15%、100%、96.30%;KNN算法的准确率分别为:62.96%、70.37%、75.93%。这几种算法的平均准确率分别为:ID3(91.97%)CART(92.59%)朴素贝叶斯(98.15%)KNN(69.75%),从对同一数据集进行分类的结果来看,朴素贝叶斯算法的分类效果是最好的。但是我们也可看到在使用朴素贝叶斯算法的时候,对wine数据集分类出现了准确率为100%的情况,这说明模型出现了过拟合的现象。结合这几种算法的优缺点以及实现原理来看,因为朴素贝叶斯算法是以贝叶斯定理为基准的,所以对于条件独立这一方面有很强的要求,但是日常生活中产生的数据总不太可能是如此规整的,做不到很强的条件独立性,这就给使用这个算法带来了很大的不便之处。在日常生活中为了使自己所设计的模型能够得到别人的认可、我们一般会要求可解释性强一点,那么这个时候来选择决策树算法就在合适不过了。其中,决策树算法中ID3算法是最基础也是最原始的算法,由于这个算法本身的缺陷,研究人员开发出了新的算法,后续开发的算法不论是在准确率上还是在可解释性方面都要比ID3算法强一点,CART算法已经不是单纯的分类算法了,其也可以用于回归,适用性更强,可以使用的范围也更广。对于KNN算法,因为其是一种基于样本实例的算法,对K值的依赖性很大,确定最佳K值会额外增加大量工作量。另外分类算法又可以分为单一的分类算法与集成学习算法,像本文中提到的这几种算法就归属于单一分类算法,另外常见的单一分类算法还有支持向量机,这种算法可以有效的避免维数灾难,也较好的解决了局部极小点的问题。俗话说众人拾柴火焰高,在算法这一领域这句谚语也很适用,很多情况下,只靠单一的分类算法是无法得到令人满意的结果的,这时候集成学习算法就派上了大用场,常见的集成学习算法有:装袋、boosting。实现算法相关内容数据集介绍本文在实现ID3算法、C4.5算法、CART算法的时候,是用的数据集为wine数据集和balloon数据集,这两个数据集都是从HYPERLINK"/ml/index.php"/ml/index.php这个网站上下载的,这个网站是美国加州大学所提出的,用来存放可以用于机器学习、深度学习、数据挖掘的数据的。这个网站打开之后是这样的:图SEQ图\*ARABIC15UCI数据库网站然后进入该网站的数据库中,如下图:图SEQ图\*ARABIC16UCI数据库从这个界面中我们可以看到,UCI这个网站上的数据集分门别类的放置,很方便我们寻找适合自己使用的数据集。由于要用于分类问题,所以我选择了wine和Balloons这两个数据集。wine数据集的介绍Wine数据集一共有14列,178行。这14列中,第1列代表的是类别,即酒属于哪一类,剩余的13列,每列代表的都是一种属性,这13种属性发挥作用共同决定酒的类别。下图贴上我利用Python语言在jupyternotebook中实现的对数据集的读取截图。从截图中我们可以清晰地看到数据集的信息,我们还利用类别为分组对象,统计了一下每个类别的样本数量,在图17中也有显示,从图17中看出每类的样本数量分别为59,71,48,看起来相差不是很大,接着我们用matplotlib利用箱图进行一下可视化,直观的观看一下差距,可以看出样本的分布还是十分平衡的,在本文中我们只附上了其中四个属性的箱图结果。图SEQ图\*ARABIC17wine数据集的信息图SEQ图\*ARABIC18wine数据集的前五行图SEQ图\*ARABIC19箱图结果1图SEQ图\*ARABIC20箱图结果2图SEQ图\*ARABIC21箱图结果3Balloons数据集的介绍Balloons数据集一共有5列,16行。这5列中,第5列代表的是气球是否是扁平的,剩余的4列,每列代表的都是一种属性,分别为颜色,尺寸,对气球的动作,年龄。下图贴上我利用Python语言在jupyternotebook中实现的对数据集的读取截图,从图21中我们可以看出Balloons数据集的详细信息,分类的结果为该气球是不是为扁平状态。同样我们以类别为分组对象,对每类的数据量进行了统计,从代码运行的结果来看,数据集中的样本分布很是平衡。分布平衡的数据集十分有利于我们利用算法进行处理。图SEQ图\*ARABIC22Balloons数据的信息图SEQ图\*ARABIC23Balloons数据集的展示图SEQ图\*ARABIC24Balloons数据集的样本分布情况所使用语言、模块、编译器介绍Python语言的介绍在编程的领域里,有着“人生苦短,我用Python”的说法。我刚开始接触的编程语言是C语言,然后是java,之后才是Python。对于一道很简单的两个数的加法题,C语言需要用10行代码来实现,java语言则需要9行代码来实现,python只需要4行代码就可以实现,我们有理由相信在处理一些困难的问题的时候Python语言的代码量也会是最少的。在接触过C语言和java语言之后再接触Python语言,就会发现利用Python语言编写代码的时候一般就是脑子里怎么想就怎么编写就可以,不需要向C和java那样还需要先导入头文件,变量还要预先声明,输出还在格式方面有严格的规定。我想正是因为Python语言简洁易懂,可读性更强、也更容易理解才会有更多的人喜欢Python语言吧。Python是由GuidovanRossum所创建的,可以说只要会英文就能读懂Python语言编写的代码。而且Python语言的可移植性特别好,我们再也不需要担心Windows下写的代码在linux下不能使用的问题了。同时Python语言的交互性也很好,在编写的代码的过程中你会有一种有人在和你交流的感觉,很人性化。但是Python语言也有其欠缺之处,比如Python语言在处理一些较为复杂的问题的时候,一般来说所用时间会比其他语言更久。Sklearn库的介绍对于机器学习和深度学习的学习者来说,sklearn库并不陌生。在sklearn库中封装着大量的算法,利用sklearn库我们可以很容易的实现一些算法,使用之前我们要先导入sklearn库。我们可以利用sklearn导入数据集,比如导入常见的iris数据集;利用sklearn对数据进行预处理,可以做归一化啊、正则化啊、one-hot编码啊,这些在tensorflow中也很常见。可以利用train_test_split()方法对数据集进行划分,这个方法看名字就可以知道用途;利用sklearn中内置的fit()、score()、predict()这些方法可以对模型进行操作,得到我们想要的结果。具体来说,sklearn库可以分为七个部分,即数据导入外加六大模块。这六大类模块分别为:分类、回归、聚类、降维、预处理以及模型选择。数据导入又可以细分为三部分,利用load_来导入小型数据集;利用fetch_来导入大型数据集;利用make_来进行数据集的创建,具体实现算法的方法在官网都有介绍,忘了的时候可以在官网进行查看。图SEQ图\*ARABIC25sklearn库官网Matplotlib库的介绍Matplotlib是用来作数据可视化的一种十分方便且好用的库。利用matplotlib库可以实现饼图、条形图、折线图、散点图、词云等,只需要在使用之前导入matplotlib库,对于中文无法显示的问题还需要添加下面这句代码:matplotlib.rc("font",family='YouYuan'),对于图形显示不出来的还需要添加%matplotlibinline这句代码。在实现各种图的时候只需要调用相对应的方法即可。将数据可视化可以帮助我们很方便清楚的观看数据,对数据进行对比,更容易抓住重点。图24为matplotlub库的官网截图,图25是自己在使用matplotlib库的时候使用度比较高的方法总结。图SEQ图\*ARABIC26matplotlib官网截图图SEQ图\*ARABIC27常用方法总结Pandas模块的介绍Pandas模块对于数据挖掘的工作异常重要,我们在日常生活中得到的数据大部分情况下是凌乱无比的,一般来说不可能直解可以用于算法,这时候就需要提前对数据进行一些处理,使其符合我们算法的要求,这便用到了pandas模块。可以利用pandas来读取文本文件、csv文件、excel文件,对读取的数据紧接着就可以进行处理。对数据进行过滤,提取特定的我们需要的数据,对缺失值进行处理,对数据进行求最大值啊、求最小值、按组分啊,这些都能在最大程度上给我们后续对数据进行操作提供帮助。Jupyternotebook的介绍Jupyternotebook是一个交互式的编写代码的软件,在最开始接触jupyernotebook的时候我以为这个软件只能用来编写Python代码,仅仅是一个很好的编写Python代码的交互式软件,后来使用下来才发现,其实jupyternotebook能做的事情不止是编写Python代码那么简单,jupyternotebook还支持markdown,可以利用jupyternotebook来做笔记,可以创建共享文档,使用的时候利用win+r打开运行命令快捷键,然后输入cmd打开命令提示符,接着在命令提示符里输入jupyternotebook就可以打开notebook,如果遇到无法自己弹出,可以复制网址在浏览器里打开。然后根据需要进行选择语言进行编写。graphviz模块的介绍我相信不管是在我们的日常生活中还是在我们的学习生活中,图形都能使我们更加直观清楚的了解一些东西,大部分人是没有耐心去读一大段文字的,相反图片总是能吸引人们的注意力。目前市面上用来画图的软件有很多,比较常见的应该是幕布、Xmind,然而这些对于程序员来说使用的并不是很多,对于程序员来说使用最多的应该就是利用eclipse画er图以及利用graphviz画图。第一次接触到graphviz是在学校数据挖掘的实训课上,老师给我们介绍了这个画图工具,当时就是用来画决策树的,当然本文也利用到了graphviz画决策树。经过了解之后,自己才明白graphviz所能做的绝对不是单纯的画决策树这么简单,graphviz是国外一个实验室开发的开源的工具,被誉为程序员的画图利器。当然谈到graphviz就必须提到dot语言了,因为graphviz就是来处理dot语言从而来画图的。利用graphviz可以绘制无向图、有向图、流程图、链表等,可以利用dot语言为节点起名字,给节点设置一些属性,绘制出来的图形也很简洁易懂,方便了我们获取有用的信息。结论伴随着我国综合国力的不断提升,经济文化软实力越来越强,人们早已不再只满足于简单的衣食住行了,不仅在文化娱乐方面的需求大幅提升,而且对于衣食住行来说,更多人追求的是更好的服务,更贴切的推荐。从几十年前摩托罗拉公司研发出了第一部智能手机到现在;从最开始的智能手机支持WAP1.1无线上网到现在发展到了6.0;从一开始功能简单手写输入识别准确率极低到现在可以通过语音控制手机功能覆盖生活方方面面,可以说更好的为我们提供了服务,方便了我们的生活。但是这些方便的背后,特别是随着淘宝的流行,数据量也在激增,这一点从手机的内存容量不断扩大,直逼电脑的容量也能看出来。庞杂的数据背后隐藏着的丰富的信息如果利用好了,那么将会为大幅提升我们的生活水平添砖加瓦。在一系列学科的不断发展与庞杂数据背后诱人的信息的吸引下,数据挖掘技术应运而生,在数据挖掘技术诞生之后,历经数十年的发展,也的的确确使我们的生活更加方便了,省下了很多我们逛商场挑选中意物品的时间,淘宝、拼多多、京东大幅使用推荐算法,让我们能够在最短的时间内买到适合自己的东西。像抖音、火山、今日头条、微博这类娱乐性的软件,利用推荐算法也能让我们最大程度的避免看见自己不感兴趣的内容,为我们的好心情保驾护航。在未来的生活中,可以说各个领域都会用到数据挖掘技术,使用好这个技术可以使我们提前预知一些危险,最大程度避免损失,也能最大程度地节省时间,让我们在有限的时间内做更多的事情,提高我们的效率。相信很多人听过这样一句话——人分三六九等,那么这又会涉及到数据挖掘技术中很重要的一个分支——分类。从大自然到我们的日常生活,从鸡零狗碎的小事到至关重要的大事,处处体现着分类的思想。将事物、要做的事情分类既能帮助我们更快更准确的找到自己想要的又能使我们更专注有效的完成多件事情。在专家学者的不懈努力下,目前已经有很多分类算法面世,最基础也是使用最多的莫过于是决策树、贝叶斯以及最近邻算法。在上文中我论述了这些算法的原理以及优缺点,并利用代码和从UCI官网上下载的数据进行了实现,直观的感受就是凌乱无章的数据经过分类算法的处理之后很容易看出所属类别,我想在这些基础算法之上进行更深入的研究,使其更符合工业的需求,然后投入使用一定会极大的方便我们的日常生活的。比如说朴素贝叶斯算法会要求各属性之间相互独立,事实上在现实生活中很多事情之间都是或多或少会有关联的,很难做到相互独立,于是就有了贝叶斯信念网络。显而易见,这些基础算法用于生产实践中是需要进一步改进的。

参考文献DuXianping,XuHongyi,ZhuFeng.Adataminingmethodforstructuredesignwithuncerta

温馨提示

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

评论

0/150

提交评论