电站数据挖掘.doc_第1页
电站数据挖掘.doc_第2页
电站数据挖掘.doc_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

电站数据挖掘数据挖掘实验报告一 背景知识火力发电厂由于设备众多且均较复杂,所需监测数据较多,故全厂的数据量非常大,可以海量来形容。例如以一台600MW机组为例,其中I/O点数超过15000个,运行过程的监控点多达60007000个,各种控制回路有500600个。随着DCS、MIS、S1S及实时数据库等计算机信息系统在电厂中广泛应用,海量数据得以采集和保存。面对这种海量数据的增加,由于受到人力,物力,财力的限制,数据背后所隐藏的深层次知识无法有效地得以理解和使用,相反却带来了“数据灾难”和“数据荒废”。传统的统计分析手段己经很难以满足数据分析的要求,而若需要发现更深层次的规律,并保证系统运行的经济性、安全性和可靠性,则必须提供更快、更有效的决策支持。数据挖掘是从数据中识别出有效的、新颖的、潜在有用的,最终能为人所理解的模式的高级过程。因其与数据库密切相关,因此又被称为数据库中的知识发现(Knowledge Discovery in Databases,KDD),它起源于对数据库及数据仓库的研究,面向海量数据。它处理的对象是原始数据,是一种在数据基础上推断归纳出一般性结论的方法。随着数据挖掘技术的不断发展和在其他行业的大量应用,用于火力发电行业的数据挖掘理论研究也逐渐开始展开,并取得了一定的成果。本文就是基于数据挖掘技术,通过使用weka数据挖掘平台对电厂的实时运行数据进行挖掘,了解数据挖掘的目的、过程,理解数据挖掘的结果,并能够根据所学习的数据挖掘的相关知识,对挖掘的过程参数和结果数据进行分析,以期望发现数据背后隐藏的更深层次的规律。二 数据集描述本文所选用的数据集来源于电站实际运行数据,如下图:该数据集共有162条记录,每一条记录有13个属性,分别为:序号,负荷,循环水进口温度,主蒸汽压力,主蒸汽温度,再热蒸汽温度,再热蒸汽压力,给水温度,排气压力,排烟温度,排气温度,凝汽器真空度,供电煤耗。除序号外其他所有数据均取到小数点后四位,其中排气压力与凝汽器真空度为负值。162条记录中:负荷的最大值为600.5277 ,最小值为300.1253,循环水进口温度的最大值为24.8070 , 最小值为13.2708,主蒸汽压力的最大值为17.1801 ,最小值为15.1954,主蒸汽温度的最大值为542.7240 ,最小值为533.4899,再热蒸汽温度的最大值为541.0474,最小值为518.7255,再热蒸汽压力的最大值为3.3629 ,最小值为1.5906,给水温度的最大值为279.5667 ,最小值为238.3696,排气压力的最大值为-91.6119 ,最小值为-98.1801,排烟温度的最大值为113.3043 ,最小值为96.3240,排气温度的最大值为321.9489,最小值为306.7930,凝汽器真空度最大值为-92.4553,最小值为-98.4330,供电煤耗的最大值为355.9414 ,最小值为322.6320,三 算法描述 3.1 算法选择我们根据所给数据,希望找到提高该机组效率的方法,也就是如何用更少的煤发更多的电,即降低“耗煤率”。煤耗率是指火力发电厂每生产或供应1 kWh电能所需消耗的燃煤量,而煤耗率与负荷、循环水进口温度、主蒸汽温度、给水温度、排气压力、排烟温度等有关系,因此我们可以使用相关算法对影响煤耗的因素进行分析。3.2 关联规则基本概念设是由m个不同项目组成的集合。D是事务数据库,其中每个事务T是I中的一组项目的集合,即。每个事务有一个标识符,称作TID。对于项集,如果,则称事务T支持A。如果A中有k个项目,则称A为k项集。关联规则是诸如的蕴涵式,其中,并且。规则的支持度和置信度是两个规则兴趣度量值,它们分别表示发现规则的有用性和确定性。关联规则的支持度:支持度用s表示,其中s是D中事务包含(即A和B二者)的百分比,它是概率。即是关联规则的置信度:置信度用c表示,其中c是D中在包含事务A的情况包含B的百分比。它是条件概率。为了挖掘出有意义的关联规则,需要给定两个阈值:最小支持度阈值(minsup)和最小置信度阈值(minconf)。这些阈值可以由用户或领域专家设定。如果项集满足最小支持度,和最小置信度,则称它为频繁关联规则。关联规则的任务就是在给定的事务数据库D中发现所有的频繁关联规则。3.3 关联规则的中的Apriori算法Apriori算法是最为经典的关联规则挖掘算法,其基本原理是逐层搜索的迭代:首先找到所有的频繁1项集,用于搜索频繁2项集,用于搜索频繁3项集,如此下去,直到不能找到维度更高的频繁项集为止。这种方法依赖连接和剪枝这两步来实现。算法的第一次遍历仅仅计算所有包含1个元素的项目集出项的频率,来决定频繁1项集。随后的第k次遍历,包括两个阶段。首先,调用Aprioir-gen函数,通过(k-1)步中产生的频繁(k-1)项集来生成候选频繁k项集Ck。接着扫描数据库D,计算项目集Ck中各元素在D中的支持度。具体算法如下:(1) L1=large 1-itemsets;(2) for (k=2; Lk-1不为空; k+) do begin(3) Ck=apriori-gen(Lk-1); / 新候选物品集(4) For all transactions tD do begin(5) C=subset(Ck,t); / t中的候选物品集(6) For all candidates cC do(7) c.count+;(8) end;(9) Lk=cCk|c.count=minsup;(10) end;(11) Answer = L1L2Apriori-gen函数:Apriori-gen函数可以细化为两大步:合并( join)算法:从任意两个Lk-1最大项集生成候选物品集Ckinsert into Ckselect p.item1,p.item2,.,p.item(k-1), q.item(k-1)from Lk-1 p, Lk-1 qwhere p.item1=q.item1, .,p.item(k-2)=q.item(k-2), p.item(k-1)小于q.item(k-1)修剪(Prune)算法:从Ck中除去大小为k-1且不在Lk-1中的子集(1) For all itemsets cCk do(2) For all (k-1)-subsets s of c do(3) if (sLk-1)(4) then delete c from CkApriori算法的两大缺点就是产生大量的候选集,以及需重复扫描数据库。四 挖掘步骤4.1数据格式转化利用excel打开所给的access,因为weka不可以直接处理“*.xlsx”格式的excel数据,可以处理“*.csv”格式的数据,所以我们另存为 “电站运行数据.csv”。weka不识别内容中的中文,所以把“电站运行数据.csv”中的:序号,负荷,循环水进口温度,主蒸汽压力,主蒸汽温度,再热蒸汽温度,再热蒸汽压力,给水温度,排气压力,排烟温度,排气温度,凝汽器真空度,供电煤耗用英文:Number、Load、Circulating water inlet temperature、Main stream pressure、Main stream temperature、Reheat steam temperature、Reheat steam pressure、Feedwater temperature、Exhaust steam pressure、Funnel temperature、Exhaust steam temperature、Condenser Vacuum、Coal consumption代替4.2. 打开weka软件点击Explorer进入:4.3. 导入数据源选择“Open file”,找到“电站运行数据.csv”,并打开。从上图可以看出:该数据共有162条实例,每条实例有13个属性。4.3. 数据预处理:我们要采用关联规则挖掘,所以首相要对数值型数据离散化。首先去掉无意义的“序号”属性,然后我把他们都离散化为5段,离散后的结果如下:其中Coal consumption属性的离散化结果如下图所示:所有属性(除序号外)离散化后的柱状图如下:4.4. 关联规则数据挖掘:采用waka的Apriori关联规则算法进行挖掘: 设置相关参数如下:最小支持度阈值(lowerBoundMinSupport)=0.1最小置信度阈值(minMetric)=0.9显示规则数量(numRules)=10软件自动列出前十条置信度最大的关联规则如下:1. Load=low 81 = Reheat steam pressure=(-inf-1.94506 81 conf:(1)2. Feedwater temperature=(-inf-246.60902 80 = Reheat steam pressure=(-inf-1.94506 80 conf:(1)3.Load=low Feedwater temperature=(-inf-246.60902 79 = Reheat steam pressure=(-inf-1.94506 79 conf:(1)4. Feedwater temperature=(-inf-246.60902 80 = Load=low 79 conf:(0.99)5.Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 80 = Load=low 79 conf:(0.99)6.Feedwater temperature=(-inf-246.60902 80 = Load=low Reheat steam pressure=(-inf-1.94506 79 conf:(0.99)7. Load=low 81 = Feedwater temperature=(-inf-246.60902 79 conf:(0.98)8.Load=low Reheat steam pressure=(-inf-1.94506 81 = Feedwater temperature=(-inf-246.60902 79 conf:(0.98)9.Load=low 81 = Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 79 conf:(0.98)10. Reheat steam pressure=(-inf-1.94506 88 = Load=low 81 conf:(0.92)分析上面的规则,我们会发现“=”右侧没有属性“Coal consumption”,也就是说不能从上面的规则中分析各个因素对煤耗的影响。实际上当我把“显示规则数量”设置成100,最小置信度阈值设置成0.8时仍然没有我们想要的规则出现。为了继续挖掘相关因素对煤耗的影响,这里我采用了软件提供命令模式(即自己编相关的命令语句):在“Simlpe CLI”模块中输入如下格式的命令:java weka.associations.Apriori -N 100 -T 1 -C 1.5 -D 0.05 -U 1.0 -M 0.1 -S -1.0 -I -t d:wekadzsj.arff如下图:这样做的好处是软件可以自动给出各满足条件的频繁项集。下面我列出部分频繁项集:Size of set of large itemsets L(1): 22Large Itemsets L(1):Load=(-inf-360.20578 81Main steam temperature=(539.03036-540.87718 139Reheat steam pressure=(-inf-1.94506 88Feedwater temperature=(-inf-246.60902 80Coal consumption=(329.29388-335.95576 67Coal consumption=(335.95576-342.61764 53Size of set of large itemsets L(2): 41Large Itemsets L(2):Load=(-inf-360.20578 Reheat steam pressure=(-inf-1.94506 81Load=(-inf-360.20578 Feedwater temperature=(-inf-246.60902 79Load=(-inf-360.20578 Coal consumption=(335.95576-342.61764 41Main steam temperature=(539.03036-540.87718 Coal consumption=(329.29388-335.95576 54Main steam temperature=(539.03036-540.87718 Coal consumption=(335.95576-342.61764 49Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 80Reheat steam pressure=(-inf-1.94506 Coal consumption=(335.95576-342.61764 43Feedwater temperature=(-inf-246.60902 Coal consumption=(335.95576-342.61764 41Size of set of large itemsets L(3): 24Large Itemsets L(3):Load=(-inf-360.20578 Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 79Load=(-inf-360.20578 Reheat steam pressure=(-inf-1.94506 Coal consumption=(335.95576-342.61764 41Load=(-inf-360.20578 Feedwater temperature=(-inf-246.60902 Coal consumption=(335.95576-342.61764 41Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 Coal consumption=(335.95576-342.61764 41Size of set of large itemsets L(4): 8Large Itemsets L(4):Load=(-inf-360.20578 Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 Coal consumption=(335.95576-342.61764 41Size of set of large itemsets L(5): 1Large Itemsets L(5):Load=(-inf-360.20578 Main steam pressure=(-inf-15.59234 Main steam temperature=(539.03036-540.87718 Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 46从满足条件的频繁项集我们可以看出:Load,Reheat steam pressure,Feedwater temperature与煤耗的关联较大。我们可以采用前面算法描述中提出的求置信度得方法:分析Load,Reheat steam pressure,Feedwater temperature对煤耗的影响。Load=(-inf-360.20578 =Coal consumption=(335.95576-342.61764 此规则的置信度: Main steam temperature=(539.03036-540.87718 =Coal consumption=(329.29388-335.95576 此规则的置信度: Main steam temperature=(539.03036-540.87718 =Coal consumption=(335.95576-342.61764 此规则的置信度: Reheat steam pressure=(-inf-1.94506 =Coal consumption=(335.95576-342.61764 此规则的置信度: Feedwater temperature=(-inf-246.60902 =Coal consumption=(335.95576-342.61764 此规则的置信度: Load=(-inf-360.20578 Reheat steam pressure=(-inf-1.94506 =Coal consumption=(335.95576-342.61764 此规则的置信度: Load=(-inf-360.20578 Feedwater temperature=(-inf-246.60902 =Coal consumption=(335.95576-342.61764 此规则的置信度: Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 =Coal consumption=(335.95576-342.61764 此规则的置信度: Load=(-inf-360.20578 Reheat steam pressure=(-inf-1.94506 Feedwater temperature=(-inf-246.60902 =Coal consumption=(335.95576-342.61764 此规则的置信度: 4.5. 结果分析:从满足条件的频繁项集我们可以看出:Load,Reheat steam pressure,Feedwater temperature与煤耗的关联较大,且它们增大都会降低煤耗.以第一条规则为例,解释如下:第一条关联规则:Load=(-inf-360.20578 =Coal consumption=(335.95576-342.61764 意思是当负荷属于(-inf-360.20578范围时,煤耗属于(335.95576-342.61764置信度为51%。找到的9条规则的置信度都比较低,这也正是软件自动给出的规则中为什么找不到各个因素对煤耗影响的原因,因为软件自动给出的规则都是置信度比较高的规则。 那么为什么会导致置信度偏低呢?其实对于所给的电站数据,影响煤耗是各个因素共同作用的结果:有些属性对煤耗有正影响(即该属性大时煤耗也多),有些属性对煤耗有负影响(即该属性大时煤耗却少),正负作用同时对煤耗影响着,如果我们单独取几个属性分析时,就可能导致置信度偏低。另外我们可以结合决策树来辅助分析:选取软件提供的J48算法,也就是C4.5算法,如下图:生成的决策树如下:因为所得到的决策树太大,适应屏幕大小后图上就会有叠加,只截取部分放大以说明问题:图中所有叶子节点就代表离散化后的煤耗,图中说明沿着不同路径的不同组合可导致不同的煤耗情况。数据中影响煤耗的因素都在变化, 导致某确定因素对煤耗的影响不太明显了。另外我们还可以根据所给数据,用分类算法中的M5P算法建模,如下图所示:运行结果如下:得到一个数学表达式Coal consumption = -0.0532 * Load - 0.0388 * Circulating wa

温馨提示

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

评论

0/150

提交评论