《自动化专业方向设计》报告模版.docx
- 文档编号:27463793
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:15
- 大小:23.27KB
《自动化专业方向设计》报告模版.docx
《《自动化专业方向设计》报告模版.docx》由会员分享,可在线阅读,更多相关《《自动化专业方向设计》报告模版.docx(15页珍藏版)》请在冰豆网上搜索。
《自动化专业方向设计》报告模版
西南科技大学
自动化专业方向设计报告
设计名称:
ID3算法在Matlab下的实现及应用
姓名:
学号:
班级:
指导教师:
起止日期:
西南科技大学信息工程学院制
方向设计任务书
学生班级:
学生姓名:
学号:
设计名称:
ID3算法在Matlab下的实现及应用
起止日期:
指导教师:
冯兴华
设计要求:
(1)了解数据挖掘中分类分析的概念,掌握分类问题的一般流程。
(2)了解决策树的概念,熟悉ID3等基本决策树模型。
(3)以文献《YuanY,ShawMJ.Inductionoffuzzydecisiontrees[J].FuzzySetsandSystems,1995,69:
125-139》为基础,了解模糊决策树分类模型。
(4)掌握信息熵、信息增益、模糊度、分类不确定性等概念,并能利用matlab实现上述基本概念。
(5)能利用matlab编写决策树的基本架构,利用递归方法实现模糊决策树。
(6)会利用编写好的模糊决策树程序对现实数据进行分类。
方向设计学生日志
时间
设计内容
11月10日
认识matlab编写软件,熟悉相关操作,并尝试程序编写。
11月14日
安装组态软件,学习组态软件的组成,熟悉相关操作。
11月18日
了解决策树的概念熟悉ID3等基本决策树模型
11月22日
掌握信息熵、信息增益、模糊度、分类不确定性等概念
11月26日
设计监控界面,编写应用程序。
11月28日
利用matlab编写决策树的基本架构,进行系统调试,发现问题并解决问题。
11月29日
系统程序修改,尽量满足控制要求,提高监控质量。
11月30日
完善系统设计。
12月1日
完成报告。
ID3算法在matlab下的应用及实现
摘要(150-250字)ID3算法是数据挖掘决策树算法中应用比较广泛的算法。
本文采用ID3算法对发动机功率不足故障中的决策树进行研究
与分析,针对ID3算法中的不足,提出一种基于Matlab的决策树算法,此算法根据输入的不同样本值,通过改变其权值来该决定输出
值,使所得的决策树更合理、高效
关键词(3~5个)数据挖掘;决策树;ID3算法;Matlab
英文题目
英文摘要(150-250字)
:
Thispapermainlydescribesthedataminingonthedecisiontreealgorithm,discussedthebasictheoriesandprincipleconcerningID3algorithm.theuseofthealgorithmtotheteachers'teachingqualityevaluationdataforanalysis,constructingqualityevaluationdatadecisiontreemodel
英文关键词(3~5个)
datamining;decisiontree;ID3algorithm
一、设计目的和意义
随着信息技术的迅速发展以及人们获取数据手段的多样性,各行各业都拥有大量的数据,面对这个庞大的数据海洋,如何更好地利用这些数据资源、挖掘出其中蕴含的信息和知识,已成为专家和学者们广泛关注的问题。
在这样的背景之下,数据挖掘技术也随之应运而生和蓬勃发展起来。
数据挖掘中决策树是一种比较重要的方法。
决策树算法是一种较为广泛的归纳推理算法,它通常采用一组无次序、无规则的实例推理出决策树表示形式的分类规则。
决策树是一种类似于流程图的树形结构,其顶点结点作为树的根结点采用的是样本的属性,树的
分支采用的是样本的属性值,树的叶子结点表示的是本属性值所在的类。
根据所采用的算法不同,所得决策树也不尽相同。
如:
ID3算法,C4.5算法,或者是其它的一些改进算法,也包括本文中将要提到的基于Matlab的决策树算法。
ID3算法使用信息熵作为标准,但是此算法存在着缺陷,因此对ID3算法进行了改进,采用基于Matlab的决策树算法。
我们以汽车故障诊断系统中发动机的故障为实例,对两种算法进行比较,发现改进后的算法是比较有效的。
二、控制要求
(1)了解数据挖掘中分类分析的概念,掌握分类问题的一般流程。
(2)了解决策树的概念,熟悉ID3等基本决策树模型。
(3)以文献《YuanY,ShawMJ.Inductionoffuzzydecisiontrees[J].FuzzySetsandSystems,1995,69:
125-139》为基础,了解模糊决策树分类模型。
(4)掌握信息熵、信息增益、模糊度、分类不确定性等概念,并能利用matlab实现上述基本概念。
(5)能利用matlab编写决策树的基本架构,利用递归方法实现模糊决策树。
(6)会利用编写好的模糊决策树程序对现实数据进行分类。
三、设计方案论证
1决策树简介
决策树通过使用信息论知识原理对获取到样本的众多属性进行解析和归纳,并最终形成类似于流程图
的树型结构形式。
树型结构节点为样本的属性,分支为属性取值,其中树的根节点为样本中信息量最大的
属性,树的中间节点则为每个子树包含子集样本中信息量最大的属性,将样本类别取值作为树的叶节点。
一条合取规则就是从树根到叶结点的一条通路,整个树就是由一组析取表达式规则所构成。
决策树构造可
以分2步进行:
第1步是树的生成,由训练样本集采用递归的方式生成决策树的过程。
第2步是树的修剪,即对上一阶段生成的决策树进行检验、校正和修正的过程。
采用非训练集的事例
检验,将一些可能是噪音或者异常的数据剪去。
2ID3算法
2.1ID3算法基本思想
ID3由概念学习系统CLS发展而来,CLS的工作过程为:
先从数据中找出最具判别力的因素,再根据
此因素将数据划分成多个子集,接着每个子集再找出最有判别力的因素进行进一步的划分,最终使得每个
子集中只含同类型的数据,生成一棵树,使用它可以分类新的样例集。
R.Quinlan于1986年引进了信息论中的信息增益,作为特征判别能力的度量,并提出了ID3算法P
[1]P。
这
种算法对对象分类所需要的期望测试数目实现最小,从而得到一个简单的树。
ID3算法是基于信息熵P
[2]P的决策树分类算法,为了获得具有最大信息增益的属性,需要对每个属性的信
息增益进行计算并比较其大小。
设SB
iB是拥有S个数据样本的集合。
假设类标号属性具有m个不同取值
1,2iXim==(,,)L。
设是SB
iB类XB
iB中的样本数。
对于一个给定的样本分类所需的期望信息由式
(1)给出
1221
(,,,)log()m
miii
ISSSpp=
L=−∑
(1)
其中ip是任意样本属于iX的概率,可用iS
S来估算。
设一个属性Y具有n个不同取值12{,,,}nyyyL。
可以用属性X将S划分为n个不同子集12{,,,}nSSSL,
其中iS中的样本在属性Y上具有相同的值(1,2,,)jyjn=L。
若属性Y被选为测试属性,设ijS是子集jS中
类iX的样本数。
有属性Y划分成子集的信息熵(信息期望)由式
(2)计算出
12121
()()/((,,,))n
jjmjjjmjj
EYssssIsss=
=+++×∑LL
(2)
收稿日期:
2011-12-15
作者简介:
王胜(1979-),男,安徽六安人,讲师,硕士,主要从事计算机网络和数据挖掘方面的研究工作,jacken_79@。
第3期基于决策树ID3算法研究与实现·65·
其中12()/jjmjs+++sssL被当做第j个子集的权值。
由上述计算可得:
若对子集划分的纯度越高,就要求熵值越小。
对于一个给定的子集S,其信息期望为1221
(,,,)log()n
jjmjijijj
Issspp=
L=−∑;
ij
ij
S
pS=是jS中样本属于iX
样本的概率。
属性Y上分支将获得的信息增益是
12()(,,,)()GainYIsssEYjjmj=−L(3)
由式(3)可知:
如果熵的取值越小,其所对应的信息增益就会越大。
2.2ID3算法描述
主算法描述为:
①随机从数据训练集中挑选含有正、反例的子集(称之为“窗口”);
②对上述随机选择的子集使用“ID3建树算法”构建一棵决策树;
③使用上述构建的决策树对训练集中除窗口以外的实例进行类别判定,从而找到错判的实例;
④如果出现判断出错的实例,就将其放入到窗口中,并跳转②执行,否则结束此算法。
建树算法描述为:
①对随机从数据训练集中挑选出来的含有正、反例的子集,进行各个属性特征的互信息计算;
②将互信息最大的特征kA选为树的根或者是子树的根;
③把在kA处取值相同的例子归于同一子集,并将该值作为树的分支;
④对仅含正例或反例的子集则返回调用处;
⑤对于既含正例又含反例的子集,则递归调用建树算法,返回②,重复构建子树。
2.3ID3算法的改进
在多数实际应用中,由于获得的数据不能达到此算法要求的条件,同时ID3算法存在计算信息增益时
只选择取值较多的属性,对连续属性不能处理等不足。
这就要求在使用决策树算法时,对数据先进行预处
理或者对ID3算法进行改进。
2.3.1决策树剪枝
实际应用中,在决策树创建过程中,如果训练样本集的规模较大,对应生成决策树的分枝和层数就较
多。
另外,由于训练样本集中存在不同的异常和噪声,致使部分分枝反映的是异常现象。
建立的决策树就
出现过度拟合训练样本集。
为了解决这种过度拟合问题,就需要对决策树进行剪枝。
剪枝是克服噪声的一
种技术,采用统计度量减去最不可靠的分支,从而提高决策树独立于测试数据的正确分类能力,决策树得
以简化。
2.3.2对定量属性的处理
在实际工作中,数据挖掘既要能处理定性属性(即离散属性)的数据又要能处理定量属性(即连续属
性)的数据,这就要求对算法进行扩展,使之能够处理定量属性。
要使算法能够处理定量属性,就需要对其值进行划分,关键性的问题是分裂点的选择。
ID3算法通过
对连续属性计算得到最优阈值M,依据M将定量属性的取值进行分区,即小于等于M和大于M两个区。
再计算出该属性的增益比率,通过比较其它属性的增益比率,获得最大的信息增益比率。
通过这种方法较
好的解决了定量属性的离散化处理问题。
1993年J.R.Quinlan提出了C4.5算法P
[3]P——ID3算法的改进版本,该算法就增加了对连续属性离散化等功
能。
四、系统设计
通过实例介绍ID3算法的过程,实例是根据职称、性别、学历和年龄的指标因素来认定教师教学质量是否优秀。
列举部分教师的基本情况及其最后评估是否优秀的结果,其全体训练数据见表。
1初级职称男本科30~45否8高级职称男博士30~45否
2中级职称女硕士30~45是9初级职称女硕士30~45是
3初级职称男本科≤30否10初级职称男硕士≤30否
4高级职称男硕士>45是11高级职称女本科>45是
5中级职称女本科>45否12中级职称男硕士≤30是
6中级职称女本科30~45否13初级职称女本科≤30否
7高级职称男博士>45是14中级职称男硕士30~45否
五、设计结果及分析
可以看出当属性取值为“学历”时,I(学历)最大,所以应该选择学历属性作为测试属性。
将“学历”
特征为树根,将其属性的3个不同取值作为分支,分支所对应的3个子集为
MMM1{1,3,5,6,11,13},2{2,4,9,10,12,14},3{7,8}===
递归建树“学历”特征为树根,所得到3个子集均包含有正例和反例,这就需要对各子集分别使用ID3算法,通过对子集中的各特征计算求的互信息,并产生相应的分支。
直至所产生的分支包含的实例均属于某一类为止。
在“学历”特征选择本科时所求各子集的条件熵。
如果下一个节点将职称选择为测试属性,则条件熵为222333222111(|)(0log)(0log)(log0)0633622611
HUV=−+−+−+=
如果下一个节点选择性别作为测试属性,则条件熵为
22222241133(|)(0log)(loglog)0.54162264444
HUV=−+−+=
如果下一个节点选择年龄作为测试属性,则条件熵为
222222222211(|)(0log)(0log)(log0)0.167622622622
HUV=−+−+−+=
可以看出,选择职称作为测试属性得到的HUV(|)最小,所以I(职称)最大,故当“学历”特征选
择本科时,应选择“职称”作为下个结点的测试属性。
由“学历”特征为本科所引申出的结点到此完成,
此决策树分支含有3个叶子结点。
在“学历”特征选择硕士时所求各子集的条件熵。
如果下一个节点将职称选择为测试属性,则条件熵为
22222
2111132211111(|)(loglog)(loglog)(log0)0.7926222263333611
HUV=−+−+−+=
如果下一个节点选择性别作为测试属性,则条件熵为
222
42222222(|)(loglog)(log0)0.66764444622
HUV=−+−+=
如果下一个节点选择年龄作为测试属性,则条件熵为
2222
2111132211(|)(loglog)(loglog)6222263333
HUV=−+−+−
2
111(log0)0.792
611
+=
由于选择性别作为测试属性得到的HUV(|)最小,所以(性I
别)最大,故当“学历”特征选择硕士时,应选择“性别”作为
下个结点的测试属性。
结束语
通过所生成的不同决策树可知,基于Matlab的算法生成的决策
树模型克服了多值偏向的问题,也提高了决策树的分类效率和准确率,
同时使决策树具有健壮性。
基于Matlab的决策树算法改变了测试属性
的标准,并且此算法更能加快树的生长,生成的决策树对于发动机的
故障诊断更高效、准确,此方法是可行的。
参考文献(递增引用,引用相关内容)
[1]毛国君.数据挖掘原理与算法[M].北京:
清华大学出版社.
2005.
[2]杨静,张楠男,李建,刘延明,梁美红.决策树算法的研究与应
用[J].计算机科学与发展.2010
(2)
[3]屈志毅,周海波.决策树算法的一种改进算法[J].计算机应
用.2008(B06)
[4]丛爽.面向Matlab工具箱的神经网络理论与应用[M].中国
科技技术大学出版社.2009.
[5]时明华.基于决策树的装甲车故障诊断系统的设计与实现.
东北大学.2008.
[6]刘栋,冯勇,赵向辉.基于决策树算法确定一个最小神经网
络.计算机应用.2010(A01)
附录(程序、电路图等)
functionD=ID3(train_features,train_targets,params,region)
%ClassifyusingQuinlan'sID3algorithm
%Inputs:
% features -Trainfeatures
% targets -Traintargets
% params -[Numberofbinsforthedata,Percentageofincorrectlyassignedsamplesatanode]
% region -Decisionregionvector:
[-xx-yynumber_of_points]
%
%Outputs
% D -Decisionsufrace
[Ni,M]=size(train_features);
%Getparameters
[Nbins,inc_node]=process_params(params);
inc_node =inc_node*M/100;
%Forthedecisionregion
N =region(5);
mx =ones(N,1)*linspace(region
(1),region
(2),N);
my =linspace(region(3),region(4),N)'*ones(1,N);
flatxy =[mx(:
),my(:
)]';
%Preprocessing
[f,t,UW,m] =PCA(train_features,train_targets,Ni,region);
train_features =UW*(train_features-m*ones(1,M));;
flatxy =UW*(flatxy-m*ones(1,N^2));;
%First,binthedataandthedecisionregiondata
[H,binned_features]=high_histogram(train_features,Nbins,region);
[H,binned_xy] =high_histogram(flatxy,Nbins,region);
%Buildthetreerecursively
disp('Buildingtree')
tree =make_tree(binned_features,train_targets,inc_node,Nbins);
%Makethedecisionregionaccordingtothetree
disp('Buildingdecisionsurfaceusingthetree')
targets =use_tree(binned_xy,1:
N^2,tree,Nbins,unique(train_targets));
D =reshape(targets,N,N);
%END
functiontargets=use_tree(features,indices,tree,Nbins,Uc)
%Classifyrecursivelyusingatree
targets=zeros(1,size(features,2));
if(size(features,1)==1),
%Onlyonedimensionleft,soworkonit
fori=1:
Nbins,
in=indices(find(features(indices)==i));
if~isempty(in),
ifisfinite(tree.child(i)),
targets(in)=tree.child(i);
else
%Nodatawasfoundinthetrainingsetforthisbin,sochooseitrandomally
n =1+floor(rand
(1)*length(Uc));
targets(in)=Uc(n);
end
end
end
return
end
%Thisisnotthelastlevelofthetree,so:
%First,findthedimensionwearetoworkon
dim=tree.split_dim;
dims=find(~ismember(1:
size(features,1),dim));
%Andclassifyaccordingtoit
fori=1:
Nbins,
in =indices(find(features(dim,indices)==i));
targets=targets+use_tree(features(dims,:
),in,tree.child(i),Nbins,Uc);
end
%ENDuse_tree
functiontree=make_tree(features,targets,inc_node,Nbins)
%Buildatreerecursively
[Ni,L] =size(features);
Uc =unique(targets);
%Whentostop:
Ifthedimensionisoneorthenumberofexamplesissmall
if((Ni==1)|(inc_node>L)),
%Computethechildrennon-recursively
fori=1:
Nbins,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动化专业方向设计 自动化 专业 方向 设计 报告 模版
