版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.决策树算法一、决策树算法简介:决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进展处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进展分析。本质上决策树是通过一系列规则对数据进展分类的过程。决策树方法的根本思想是:利用训练集数据自动地构造决策树,然后根据这个决策树对任意实例进展判定。其中决策树〔DecisionTree〕是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进展分类。决策数有两大优点:1〕决策树模型可以读性好,具有描述性,有助于人工分析;2〕效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进展。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪技:决策树的剪枝是对上一阶段生成的决策树进展检验、校正和修下的过程,主要是用新的样本数扼集〔称为测试数据集〕中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除、决策树方法最早产生于上世纪60年代,到70年代末。由JRossQuinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的根底上进展了改良,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改良,既适合于分类问题,又适合于回归问题。本节将就ID3算法展开分析和实现。ID3算法:ID3算法最早是由罗斯昆〔J.RossQuinlan〕于1975年在悉尼大学提出的一种分类预测算法,算法的核心是"信息熵〞。ID3算法通过计算每个属性的信息增益,认为信息增益高的是好属性,每次划分选取信息增益最高的属性为划分标准,重复这个过程,直至生成一个能完美分类训练样例的决策树。在ID3算法中,决策节点属性的选择运用了信息论中的熵概念作为启发式函数。在这种属性选择方法中,选择具有最大信息增益〔informationgain〕的属性作为当前划分节点。通过这种方式选择的节点属性可以保证决策树具有最小的分枝数量,使得到的决策树冗余最小。伪代码:二、实验过程1.实验数据集这个样例集中,每个属性都是离散值的,连续的属性已经被离散化。将图中的样例集转换成图2中所示的格式并保存到文件中以供工程程序读取数据。图2中"attribute〞行所对应的是样例集中的测试属性和目标属性,以及它们属性值。而"data〞行后面的每一行数据则对应了样例集中的一条样例。测试属性:outlook,天气情况,属性值为{sunny,overcast,rainy};temperature,气温,属性值为{hot,mild,cool};humidity,湿度,属性值为{high,normal};Windy,是否有风,属性值为{TRUE,FALSE}。目标属性:Play,是否适合打球,属性值为{yes,no}。RIDoutlooktemperaturehumiditywindyplay1sunnyhothighFALSEno2sunnyhothighTRUEno3overcasthothighFALSEyes4rainymildhighFALSEyes5rainycoolnormalFALSEyes6rainycoolnormalTRUEno7overcastcoolnormalTRUEyes8sunnymildhighFALSEno9sunnycoolnormalFALSEyes10rainymildnormalFALSEyes11sunnymildnormalTRUEyes12overcastmildhighTRUEyes13overcasthotnormalFALSEyes14rainyhighhighTRUEno输出:图3所示为本工程最终的输出结果。工程的输出结果详细的给出了在构建决策树的过程中候选属性的信息增益、测试属性的选取结果、测试属性的各个属性值所对应的分支、目标属性选取结果以及目标概念buys_puter的决策树JSON格式输出,并使用工程生成的决策树进展预测分析。根据生成的*ml文件画出决策树如下图:2.实现步骤:第一步:从文件weather.arff中读取测试样例的属性attribute和样例数据data,方法voidreadARFF(Filefile)实现了数据的读取这项工作。第二步:开场递归地创立决策树。首先为样例集中的每一个测试属性分配一个权值,权值越小代表属性的重要性越高。创立决策树的过程中要计算样本的总体熵,计算各个属性的信息增益,将信息增益值最大的属性定为测试属性〔根结点〕,然后开场从根节点开场递归地创立子结点。实现代码参考方法publicdoublecalEntropy(ArrayList<Integer>subset,intinde*)。第三步:输出目标概念weather的决策树*ml格式,此项需要引入包,编译整个工程并运行生成决策树。关键代码://给定原始数据的子集(subset中存储行号),当以第inde*个属性为节点时计算它的信息熵publicdoublecalEntropy(ArrayList<Integer>subset,intinde*) { intsum=subset.size(); doubleentropy=0.0; int[][]info=newint[attributevalue.get(inde*).size()][]; for(inti=0;i<info.length;i++) info[i]=newint[attributevalue.get(decatt).size()]; int[]count=newint[attributevalue.get(inde*).size()]; for(inti=0;i<sum;i++) { intn=subset.get(i); Stringnodevalue=data.get(n)[inde*]; intnodeind=attributevalue.get(inde*).inde*Of(nodevalue); count[nodeind]++; Stringdecvalue=data.get(n)[decatt]; intdecind=attributevalue.get(decatt).inde*Of(decvalue); info[nodeind][decind]++; } for(inti=0;i<info.length;i++){ entropy+=getEntropy(info[i])*count[i]/sum; } returnentropy; }//构建决策树publicvoidbuildDecisionTree(Stringname,Stringvalue, ArrayList<Integer>subset,LinkedList<Integer>selatt) { Elementele=null; SuppressWarnings("unchecked") List<Element>list=root.selectNodes("//"+name); Iterator<Element>iter=list.iterator(); while(iter.hasNe*t()) { ele=iter.ne*t(); if(ele.attributeValue("value").equals(value)) break; } if(infoPure(subset)) { ele.setTe*t(data.get(subset.get(0))[decatt]); return; } intminInde*=-1; doubleminEntropy=Double.MA*_VALUE; for(inti=0;i<selatt.size();i++){ if(i==decatt) continue; doubleentropy=calEntropy(subset,selatt.get(i)); if(entropy<minEntropy) { minInde*=selatt.get(i); minEntropy=entropy; } } StringnodeName=attribute.get(minInde*); selatt.remove(newInteger(minInde*)); ArrayList<String>attvalues=attributevalue.get(minInde*); for(Stringval:attvalues){ ele.addElement(nodeName).addAttribute("value",val); ArrayList<Integer>al=newArrayList<Integer>(); for(inti=0;i<subset.size();i++) { if(data.get(subset.get(i))[minInde*].equals(val)) { al.add(subset.get(i)); } } buildDecisionTree(nodeName,val,al,selatt); } }BP神经网络BP神经网络简介在人工神经网络开展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法〔BP算法〕的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。BP网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前提醒描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑构造包括输入层〔input〕、隐层(hidelayer)和输出层(outputlayer)。算法原理由于传统的感知器和线性神经网络有自身无法克制的缺陷,它们都不能解决线性不可分问题,因此在实际应用过程中受到了限制。而BP网络却拥有良好的繁泛化能力、容错能力以及非线性映射能力。因此成为应用最为广泛的一种神经网络。BP算法的根本思想是把学习过程分为两个阶段:第一阶段是信号的正向传播过程;输入信息通过输入层、隐层逐层处理并计算每个单元的实际输出值;第二阶段是误差的反向传递过程;假设在输入层未能得到期望的输出值,则逐层递归的计算实际输出和期望输出的差值〔即误差〕,以便根据此差值调节权值。这种过程不断迭代,最后使得信号误差到达允许或规定的*围之内。基于BP算法的多层前馈型网络模型的拓扑构造如上图所示。BP算法的数学描述:三层BP前馈网络的数学模型如上图所示。三层前馈网中,输入向量为:;隐层输入向量为:;输出层输出向量为:;期望输出向量为:。输入层到隐层之间的权值矩阵用V表示,,其中列向量为隐层第j个神经元对应的权向量;隐层到输出层之间的权值矩阵用W表示,,其中列向量为输出层第k个神经元对应的权向量。下面分析各层信号之间的数学关系。对于输出层,有对于隐层,有以上两式中,转移函数f(*)均为单极性Sigmoid函数:f(*)具有连续、可导的特点,且有以上共同构成了三层前馈网了的数学模型。当网络输出和期望输出不相等时,存在输出误差E如下:将以上误差定义式展开至隐层,有进一步展开至输入层,有由上式可以看出,网络输入误差是两层权值W和V的函数,因此调整权值可以改变误差E。显然,调整权值的原则是使误差不断的减小,因此应使权值的调整量与误差的负梯度成正比,即:式中负号表示梯度下降,常数表示比例系数,在训练中反映了学习速率。容易看出,BP学习算法中,各层权值调整公式形式上都是一样的,均有3个因素决定,即:学习速率、本层误差信号和本层输入信号*/Y。其中输出层误差信号同网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有关,是从输出层开场逐层反传过来的。实验实验输入与输出:本次实验做的是一个数字分类的实验,目的是对于任意的整数〔int型〕,BPNN在经过训练之后,能够准确地判断出它是奇数还是偶数,正数还是负数。首先对于训练的样本〔是随机生成的数字〕,将它转化为一个32位的向量,向量的每个分量就是其二进制形式对应的位上的0或1。将目标输出视作一个4维的向量,[1,0,0,0]代表正奇数,[0,1,0,0]代表正偶数,[0,0,1,0]代表负奇数,[0,0,0,1]代表负偶数。训练样本为1000个,学习200次。实验结果:如下图,BPNN在经过训练之后,能够准确地判断出它是奇数还是偶数,正数还是负数。关键代码:privatevoidforward(double[]layer0,double[]layer1,double[][]weight){//thresholdunit.layer0[0]=1.0;for(intj=1,len=layer1.length;j!=len;++j){doublesum=0;for(inti=0,len2=layer0.length;i!=len2;++i)sum+=we
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院保卫科工作制度
- 医院太平间工作制度
- 医院除四害工作制度
- 博物馆展览工作制度
- 卫生局调解工作制度
- 卫生院巡诊工作制度
- 厦门市反恐工作制度
- 县政府信息工作制度
- 县级道安办工作制度
- 双创基地管理工作制度
- 《小内容趋势报告2025》
- 2026年保安员考试题库及答案(1000题)
- 2025江西上饶市文化旅游产业发展集团人员招聘17人笔试历年参考题库附带答案详解
- 招商金融服务协议书
- GB/T 3048.8-2025电线电缆电性能试验方法第8部分:交流电压试验
- 抗浮锚杆施工方法流程
- 公司买房送员工协议书
- 行政司机商务接待礼仪培训
- 建筑施工安全培训全套课件
- 《大学生心理健康教育》课件第8章
- 不良事件管理办法香港
评论
0/150
提交评论