智能水质预测系统(操作手册).doc_第1页
智能水质预测系统(操作手册).doc_第2页
智能水质预测系统(操作手册).doc_第3页
智能水质预测系统(操作手册).doc_第4页
智能水质预测系统(操作手册).doc_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

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

文档简介

48智能水质预测系统V1.0智能水质预测系统操作手册项目名称:基于智能计算的影响河流水质的分类预测软件名称:智能水质预测系统编 撰:编撰日期:文档变更记录序号主要更改内容版本号更改人更改时间1第一次发布V1.0朱磊2011-8-152文档完善V1.0朱磊2011-8-273456目录1 运行环境32 使用说明52.1 主界面操作62.2 导入数据文件进行仿真预测82.3 预测结果显示132.4 结果对比152.5 结果另存为172.6 手动输入数据182.7 导出指标变量192.8 版本转换222.9 开发团队232.10 技术支持243 技术参考253.1主要功能点253.2仿真预测模型构造263.3仿真预测模型编译成.Net组件383.4.Net组件集成至C#程序中424 开发体会451 运行环境要运行智能水质预测系统,用户的计算机必须装有.Net Framework 4.0和MCRInstaller(MATLAB编译器),才能正常运行。如果用户的电脑上没有安装.Net Framework 4.0,是无法运行本软件的,系统会自动弹出提示对话框。Windows XP用户出现对话框如图1所示。Windows 7用户出现对话框如图2所示。图1 在Windows XP中无法运行弹出的对话框图2 在Windows 7中无法运行弹出的对话框只有计算机只有安装了.Net Framework 4.0,才能进入系统。但如果用户的电脑上没有安装MCRInstaller(MATLAB编译器),虽然也能进入本系统,但是无法进行仿真操作的,当用户进行仿真操作时,系统会自动弹出类似于如图3的对话框。图3 没有安装MATLAB编译器无法仿真弹出的对话框用户电脑只有同时安装了.Net Framework 4.0和MCRInstaller,才能正常运行本软件。为什么不安装.Net Framework 4.0和MCRInstaller,该软件不能正常运行?因为本软件是基于C#和matlab开发的混合编程,要让操作系统能运行本软件,只有安装了.Net Framework 4.0,系统才能运行C#程序;本软件的预测仿真功能是用matlab编译的.Net组件,只有安装了MCRInstaller,操作系统才能运行matlab编译的组件。注意:在安装.Net Framework 4.0和MCRInstaller时,系统可能会提示用户安装诸如wic_x86_chs、WindowsXP-KB942288-v3-x86等补丁,那是因为操作系统要运行.Net Framework 4.0和MATLAB编译器,需要这些补丁,为了软件能正常运行,请安装这些提示的补丁。2 使用说明这部分主要是为初次使用本软件的用户,简单讲解软件涉及的各种操作步骤和要点。2.1 主界面操作打开本软件之后,软件会有启动画面,如图4所示。图4 打开软件后的启动画面经过短暂的启动画面后,软件自动进入系统的主界面,界面简洁美观。如图5所示:图5 系统主界面此时,用户在系统主界面上能够点击的按钮为5个,分别为“导入数据文件”、“手动输入数据”、“导出指标变量”、“版本转换”、“开发团队”。如图6所示:图6 用户在主界面能够点击的5个按钮系统主界面只有5个按钮吗?不是。有些按钮在系统启动时影藏了。开发者考虑到系统的运行流程,将需要前因触发的事件,先隐藏起来,等到触发事件的前因满足了。响应的按钮会自动出现。这样做,能够帮助用户屏蔽许多误操作,也使该系统操作更加人性化。当用户把鼠标移动到某个按钮上时,系统会自动弹出具有透明效果的窗体,向用户显示此时鼠标所在按钮的简要功能说明,方便用户操作。当用户把鼠标从按钮上移开时,功能说明窗体会自动消失,方便好用。这么操作,使软件充满人性化。提示窗体效果如图7所示。图7 提示窗体效果2.2 导入数据文件进行仿真预测要对数据进行智能仿真,预测结果,前提得有数据,本软件有2种输入数据方式:导入已有的数据文件(Excel文档);手动输入数据。另外,本系统还允许,在导入已有的数据文件(Excel文档)的情况下,手动添加数据、修改数据、删除数据,使软件操作更加灵活。首先向用户介绍如何导入已有的数据文件(Excel文档)。(1)点击“导入数据文件”按钮,如图8所示。图8 点击“导入数据文件”按钮(2)系统会出现“打开文档界面”,能够导入的文件为Excel文档,后缀名格式为(.xls或.xlsx),效果及操作步骤如图9所示。图9 打开文档界面的效果及操作步骤(3)单击图9中的“打开文档页面”的“打开”按钮后,进入Excel的“工作表选择”界面,如图10所示。图10 Excel的“工作表选择”界面感觉导入数据好复杂啊选择了Excel之后,为什么还要选择工作表啊?其实,开发人员已经将导入工作做得最简单化了。因为导入数据的这个功能,开发人员采用了基于最新LINQ技术的LinqToExcel控件,并且加入了数据过滤算法,使数据导入既快速又可以成功过滤掉Excel中可能存在的空行(原始控件将数据中存在的空行默认为是0)。至于选择了Excel之后,还要选择工作表,那是读取每个Excel文档数据的必须步骤。来看一下Excel的界面,如图11所示,红色框圈出来的就是工作表。其实,每个Excel都默认有3个工作表,用户可以把数据存在一个Excel的不同工作表中。图11 Excel中工作表的布局(4)在图10界面中,选择Excel文档中数据所在的工作表,点击“确定”按钮,系统就会自动返回到“主界面”。此时,文件输入框中就显示了要导入数据的路径,并且在“主界面”也多了7个按钮,效果如图12所示:图12 选择Excel后放回主界面的效果在图12中,“指标预测”按钮共有7个,当用户把鼠标移动到按钮上时,系统会自动弹出具有透明效果的提示框,显示当前鼠标所在按钮对应的具体指标预测说明。当用户把鼠标移开按钮时,信息提示窗口会自动消失。用户可以根据自己数据指标的需求,选择点击合适的“指标预测”按钮(按钮具体对应的预测指标可参见2.7节)。点击“指标预测”按钮后,系统会根据文件输入框中显示的数据导入路径,自动导入用户选择的Excel文档中的数据,并且进入“智能水质预测”界面,将数据以表格形式,形象地将导入的数据展现在用户面前,效果如图13所示。图13 数据导入智能水质预测界面的效果进入“智能水质预测”界面后,如图13所示。可供用户点击的按钮有“开始”按钮和表格的导航栏中的相关按钮。用户如果想: 直接仿真预测,可以点击“开始预测”按钮进行仿真预测。点击“开始预测”按钮后,该按钮字样会变成“重新预测”,在预测仿真阶段,该按钮功能会自动失效,再点击该按钮,不会有任何效果。另外,“暂停取消”按钮功能会生效。如果想在预测仿真阶段暂停,可以点击“暂停取消”按钮。 先修改、删除、添加数据后仿真预测,(在此说明一点,系统导入的数据是Excel数据的副本,暂存在内存数据库中,用户对副本数据的修改、添加、删除是不会对原始数据有任何影响,不会因为可能存在的误操作而导致原始数据的丢失)。可以:(1) 修改数据:鼠标双击表格中数值所在位置(或者选中表格中数值所在位置,再按键盘上的F2键),即可直接修改数据。(2) 删除数据:鼠标单击要删除数据的行号,然后再点击导航栏上的按钮,即可删除选中行的数据。(3) 添加数据:在表格的最后一行的行号前有“*”号,用户可以在此行上添加数据。在表格中修改、删除、添加数据后,可以点击“开始预测”按钮进行仿真预测。在软件的表格中对数据进行了修改、添加或删除操作后,万一手动输入了错误数据,会不会破坏原来在Excel文档中的数据啊?不会。因为开发者在编写该软件时,已经考虑到了这一点。所以,在导入数据时,其实是将原始数据的副本导入到内存数据库中,然后系统再对内存数据库中的数据,进行智能仿真预测。即便用户在系统中对数据修改、添加或删除了数据,也仅仅是对原始数据的副本进行了修改、添加或删除,是不会影响Excel文档中的原始数据的。除非,用户直接在Excel文档里面对数据进行修改、添加或删除操作,并对Excel文档进行了保存,这么做就把原始数据给更新了。智能水质预测界面的导航栏(如图14所示)中其他按钮的相关操作:图14 导航栏(1) 点击按钮,数据选中框会跳到第一条数据位置。当数据选中框在第一条数据位置时,该按钮会变成灰色,操作功能失效失效。(2) 点击按钮,数据选中框会跳到上一条数据位置。当数据选中框在第一条数据位置时,该按钮会变成灰色,操作功能失效失效。(3) 在红色输入框中输入右边数字的任意数字,按回车键,数据选中框会自动跳到红色输入框中数字所对应的表格位置。(4) 点击按钮,数据选中框会跳到下一条数据位置。当数据选中框在最后一条数据位置时,该按钮会变成灰色,操作功能失效失效。(5) 点击按钮,数据选中框会跳到最后一条数据位置。当数据选中框在最后一条数据位置时,该按钮会变成灰色,操作功能失效失效。2.3 预测结果显示在仿真预测结束后,系统会出现一个饼状图,告知用户刚才的进行仿真预测数据中污染和非污染的样本所占比例。表格会多出2列添加在最后,一列是“仿真结果”,另一列是“修正结果”。修正结果是1,代表水质污染,为0代表水质未污染。另外系统也会根据预测结果,给污染的水质数据表上红色,未污染的水质表上绿色。“开始预测”按钮会变成“重新预测”按钮。在仿真预测结束后,在“智能水质预测界面”会多出2个按钮,分别是“结果另存为”和“结果对比”,如图15所示:图15 完成预测之后智能水质预测界面的效果预测结束之后,用户还可以通过修改、删除、添加数据,进行重新预测仿真。点击“重新预测”按钮就可以重新仿真预测。为什么运行软件后,第一次仿真要花很一些时间,但是重新预测后,反而速度却很快?这个问题涉及到了相关编程技术。因为该软件是基于C#和matlab关于BP神经网络的混合编程。这个软件的编写思路是用C#做界面,matlab做算法,matlab调试完毕后,将其编译成.Net组件,然后用C#调用(专业一点说,编译的.Net组件相当于是一个类,里面的算法功能就相当于是类的方法)。在C#程序初次调用matlab编译的.Net组件时,需要一个组件预热的过程(专业一点说,是混合编程中对类的申明),所以要花一段时间,而在此仿真预测时,组件已经预热过(类已申明),所以调用速度是极快的。另外,在组件预热过程中,会出现界面“假死”的现象,为了解决因此造成用户以为软件死机的误解,开发人员采用了backgroundWorker组件,实现软件的异步操作,即在软件预测时,用户在等待,为了使用户不产生长时间等待的焦躁感,在组件预热过程的同时,加入了进度条,使用户能够有耐心稍等片刻,等待软件预测的结果。为什么在运行仿真预测时,等了很长时间,结果弹出下面的提示对话框啊?是不是软件坏了啊?请放心,您的软件没有坏。这个对话框是开发人员人为加进去的,目的是:如果软件无休止等待下去,那么会造成用户时间的白白浪费,所以,本软件等待时间达到了规定的时间上限,就会弹出这个对话框提醒用户。其实,在一般情况下,是不会出现这个对话框的(即用户的等待预测结果时间是不会超过指定时间上限的),造成这种情况的唯一原因,也是开发人员在开发过程中很偶然地发现的,就是当运行本软件的计算机联网时,等待软件预测结果就会一直等待下去。当断网后,再运行本软件时,不需要花太长时间(时间主要花在了组件的预热上),就能返回预测结果了。所以,开发人员通过多次实验,总结出了解决方案:断开网络,重新启动本软件,即可仿真预测。造成这样的原因,可能是matlab版本的缘故。请您放心,软件本身的编写是没有任何问题的。2.4 结果对比预测结果出来之后,如果用户想知道系统预测结果的准确率,必须满足2个条件:(1) 有准确的结果数据(1代表污染,0代表不污染)(2) 结果数据和导入的指标数据必须一一对应,结果个数和指标数据个数必须一致,而且得保证结果数据和指标数据之间是没有错位的。在此基础上,用户可以通过点击智能水质预测界面上的“对比结果”按钮(如图16红色框圈出所示)。图16 智能水质预测界面的“结果对比”按钮点击“对比结果”按钮,系统会自动出现“导入结果文件”的对话框,效果如图17所示。图17 导入结果文件的界面点击图17中的“导入结果文件”按钮,出现“打开文件“对话框,能够导入的文件为Excel文档,后缀名格式为(.xls或.xlsx),之后“导入结果文件”会变形程如图18所示。图18 选定导入数据文件路径后的变形界面选择结果数据所在工作表,点击“确定”按钮,系统就进行仿真结果和导入结果的比较了。“结果比较”结束后,会有一个饼状图出现,告知用户仿真的正确率。另外,软件还会生成一个表格,将系统生成的仿真结果和修正结果,连同用户导入的结果数据一并导入到系统的表格中,并根据仿真结果是否正确进行标色,蓝色表示仿真正确,红色表示仿真错误,使结果对比鲜明地展现在用户面前。运行效果如图19所示。图19 结果对比界面效果2.5 结果另存为在仿真预测结束后,用户还可以通过点击“智能水质预测”界面中的“结果另存为”按钮(如图20红色选中框所示),将仿真结果导出到Excel文档中。图20 智能水质预测界面的“结果另存为”按钮点击图20中“结果另存为”按钮,会出现“保存文档”对话框(如图21所示),选择导出数据的位置,写上文件名,就可以导出仿真数据了。图21 保存文档对话框2.6 手动输入数据如果用户没有数据文件可以导入,也可以通过手动输入数据的方式进行水质仿真预测。主界面的“手动输入数据”按钮(如图22红色选中框所示),为用户提供了手动输入数据的功能。图22 主界面的“手动输入数据”按钮点击“主界面”的“手动输入数据”按钮,输入框会提醒用户现在选择的是“手动输入模式”,然后用户可以点击符合输入数据条件的“指标预测”按钮,进行预测,过程如图23所示:图23 在手动输入数据模式下可点击的指标预测按钮点击任意图23中的指标预测按钮,进入智能水质预测界面,如图24所示。图24 手动输入数据模式进入的智能水质预测界面在图24中,给用户显示的是一行空白表格,用户可以按照指标的提示输入数据,输完一行后,系统会自动添加一行空白表格,以供用户输下一行的数据。数据的添加、修改和删除操作,和前文“导入数据文件”后的添加、修改和删除操作类似。添加完数据之后的预测仿真也和导入数据文件仿真雷同,在此不再赘述,详细步骤查看前文的2.2章节和2.3章节。2.7 导出指标变量本软件对指标变量有严格的要求,只有指标变量符合要求后,系统才能准确导入数据,否则,将无法导入正确的数据。规范的指标变量如以下列表所示。23个指标变量:CODpHNH3-N挥发酚TN六价铬CODmnTPBOD5TCN石油类Cd总铜总锌PbHgAsSeF硫化物LAS溶解氧电导率21个指标变量:CODpHNH3-N挥发酚TN六价铬CODmnTPBOD5TCN石油类Cd总铜总锌PbAsF硫化物LAS溶解氧电导率18个指标变量:CODNH3-N挥发酚TN六价铬CODmnTPBOD5TCN石油类Cd总锌PbAs硫化物LAS溶解氧电导率15个指标变量:CODNH3-N挥发酚TN六价铬CODmnTPTCN石油类Cd总锌PbAs溶解氧LAS12个指标变量:NH3-N挥发酚TN六价铬CODmnTPTCN石油类AsCd溶解氧Pb9个指标变量:NH3-NTNAsCdCODmnTPPb石油类溶解氧6个指标变量:NH3-NTN石油类CdCODmnTP为方便用户,添加了指标变量导出功能,用户可以点击“导出指标变量”按钮进行操作,如图25红色选中框所示。图25 主界面的“导出指标变量”按钮点击图25中“导出指标变量”按钮后,会出现如图26界面:图26 导出标准的指标变量界面选择图26中用户所需要导出的指标变量,点击“导出”按钮,会出现“选择文件夹”的对话框(如图27所示),选择导出的路径,点击图27中的“确定”按钮,就可以将标准的指标变量,以Excel文档的形式导出了,方便用户采集数据时使用,更方便用户将采集数据进行仿真预测时使用。图27 选择文件夹界面2.8 版本转换为了使用更合适于用户的仿真模型,软件提供了版本装换功能(升级+还原)。点击主界面中的“版本转换”按钮(如图28红色选中框所示),会有如何进行版本转换的帮助文档。图28 主界面的版本转换按钮系统弹出一个界面,帮助内容如下:由于目前系统暂无法在运行的情况下,进行补丁替换,但也为用户提供了版本转换的方法。点击“版本转换”按钮,告知你版本转化的方法:可以通过将升级补丁直接复制到本软件根目录下的“智能水质预测系统binDebug”文件中。补丁个有三个文件,分别为: BP.dll BP.xml version.txt在替换文件时,务必将上述三个文件都替换掉。为什么不能直接在软件中转换不同版本的仿真预测模型呢?开发人员也曾尝试过直接在软件中转换不同版本的仿真预测模型。但是都失败了。原因是,仿真预测模型都是通过.Net组件加载在C#程序上的,只要软件已启动,.Net组件自动加载在程序上,直接进行版本转换,C#程序是不允许的,因为会破坏C#程序的正常运行。所以,目前版本转换的唯一办法就是手动转换。如果给您带来了不便,还望见谅。可以说一下三个版本补丁文件: BP.dll BP.xml version.txt分别具体指什么?BP.dll是用matlab编译的模型.Net组件,而BP.xml是该.Net组件的配置文档,前2个组件时必须一起替换的。而version.txt是版本文档,主要是为了提示用户该组件的版本号,并且防止版本转换后的混淆。这3个补丁,是开发人员提供的。2.9 开发团队用户可以点击主界面的“开发团队”(如图29红色选中框所示)按钮,了解本软件的相关开发人员。图29 主界面的“开发团队”按钮点击图29中的“开发团队”按钮,系统会自动显示相关开发人员和软件相关信息,如图30所示。图30 开发团队和软件相关信息你们会更新本软件吗?会的。但主要是更新预测模型,也可能会适时更新整个系统。只要用户有什么要求,我们会竭尽全力,尽量满足顾客合理的要求。版本的更新,按以下原则:若升级系统,则增加版本号中的第一位数字。Eg:原来系统版本号为:V1.0,升级之后版本号为:V2.0。若升级预测模型,则增加版本号中的第二位数字。Eg:原来系统版本号为:V1.0,升级之后版本号为:V1.1。升级软件,能让软件更有生命力,满足顾客的使用要求,保持软件自身的竞争力。2.10 技术支持使用本软件的用户,如遇到什么问题,可以将问题发送到:L,我们会提供最及时的帮助。另外,您有什么意见或想咨询软件相关技术问题,也欢迎发送文件至本邮箱。3 技术参考此部分内容是提供给想拓展本软件功能的开发人员参考。主要涉及该软件的主要功能点、仿真预测模型的构造和编译、预测模型如何集成到C#程序中。3.1 主要功能点一、 完成了C#和matlab关于BP神经网络的混合编程。C#为了编写友好的软件界面,matlab则是为了智能计算。由于C#是近年兴起,另外BP神经网络在matlab中涉及比较复杂的工具箱函数。目前,在网上,C#和matlab关于BP神经网络的参考资料,基本上都不是很系统、很全面。小组成员在设计matlab组件时,遇到了诸如修改配置文件、添加哪些BP神经网络方法函数、传递参数类型的困难。经过小组的不懈努力,已一一攻克。本软件可作为现有关于C#和matlab涉及BP神经网络混合编程参考资料的有力补充。本软件也能用于科学研究和智能算法学习。二、 采用Excel+内存数据库的方法取代SQL Server,使软件能在没有安装任何数据库的情况下运行,扩大了软件的使用人群。仿真预测的数据采用的都是Excel数据的副本,也保证了数据的原始性。采用内存数据库,则使数据读取、修改、删除等操作响应更加快速。并且应用LINQ技术,完成了将数据快速从Excel导入至软件的功能。另外自行编写了数据过滤算法,能讲无关紧要的指标过滤掉,亦能将Excel数据中可能存在的空行检测出来,防止软件将空行误读为零,将空行巧妙过滤掉。三、 同时将matlab中的智能算法编译成.Net组件,让C#进行调用,使软件能够在没有安装matlab软件的计算机上运行,减少了使用者额外安装其他软件的麻烦。同时通过编译出的应用程序扩展,完成软件的无缝升级和还原。将自己项目小组完成论文中提及的新型模型通过matlab编译成组件,成功导入到软件之中,完成智能预测。动态地根据仿真结果,为污染和非污染的水质指标表上鲜明的颜色,使用户对仿真结果一目了然。四、 实践了诸多软件工程核心思想。软件编写采用了“自顶而下”和“自底而上”相结合的设计思路,软件框架的构建采用“自顶向下”的方法,便于各个功能点模块无缝接入。各个子模块则采用“自底向上”的方法,将复杂的功能分散程逐个简单的子模块,将子模块遇到的困难一一攻克,调试成功后将其集成至软件框架之中。另外还实践了软件工程中模块的功能内聚的思想,将自动导入数据仿真和手动输入数据仿真的操作内聚到一个模块之中。将7个智能预测按钮事件全都继承到了一个功能模块之中,是原本冗余的代码立刻瘦身,同时增强了代码的健壮性。编程过程中,也完成了诸多功能和特效:(1)实现同步窗体,同时实现子窗体的透明效果;调用API实现打开和关闭窗体的动画效果,增加点击按钮、打开窗体和关闭窗体的音效;添加皮肤引擎,使软件的界面更加美观大方。(2)在传统软件针对button(按钮)千篇一律添加Click事件的规律下,本软件还为button(按钮)添加了MouseEnter和MouseLeave事件,使按钮操作更加生动、灵活。(3)软件实现了文件操作。能将仿真后的结果,从软件中导出到Excel文档中。同时也实现了文件到文件夹的拷贝功能,实现规范指标变量的导出。(4)软件采用backgroundWorker控件(这个控件一般只会在Effective C#书籍中才会提及),实现了异步操作,成功解决了在智能预测时,调用matlab组件会出现界面“假死”的现象。3.2 仿真预测模型构造本软件构造的智能预测模型的核心是:BP神经网络。而BP神经网络,可以分为2个过程。第1个过程是:训练;第2个过程是:仿真。智能仿真预测模型的构造思路是:开发人员将训练出的预测率高的模型保存起来,然后将好的预测模型导入到matlab程序中,进行仿真代码的编写,最后将其编译成.Net组件。在这过程中,开发人员需掌握BP神经网络和遗传算法的模型和过程,另外还得具备matlab的操作经验。仿真预测模型的构造,分为2个阶段。第一个阶段是:训练预测模型,预测率高的模型进行保留,预测率低的模型则丢弃。第二个阶段是:将训练预测率高的模型,导入到matlab的仿真程序中,进行组件的编译。我基本上懂BP神经网络和遗传算法了,那么到底是训练什么智能模型呢?主要是训练二种模型。第一种是BP神经网络模型,第二种是遗传算法优化BP神经网络。训练的这二种模型都有其优缺点。两个模型之间的优缺点见表1所示。表1 二种训练模型的优缺点BP神经网络模型遗传算法优化的BP神经网络模型优点训练速度很快,只要训练过程中训练收敛程度好,在30秒之内,能够训练出模型。所有仿真结果基本能无限逼近所要的结果。训练出的模型能跳出局部最优,寻找到全局最优。训练出的模型,预测率浮动不大。缺点个别仿真结果不是很精确。训练的BP神经网络模型的权值和阈值,可能是局部最优,而不是全局最优。训练出的模型,预测率浮动较大。比较权威的遗传算法matlab工具包是英国设菲尔德大学开发的遗传算法工具箱。遗传算法优化BP神经网络所用时间比较长。一般训练时间要在5分钟左右。笔者认为,不管是BP神经网络训练出的模型,还是遗传算法优化的BP神经网络训练出来的模型,只要能保证仿真预测率高,那么就可以采用。算法都有优缺点,应该取长补短。在BP神经网络训练之前,要对数据进行归一化(标准化)。可以在matlab中输入如下指令:Y=Zscore(X);其中,X就是所有数据,Y是标准化后的数据。 将标准化后的数据,分成二组。第一组是:训练样本输入数据。第二组是:仿真样本输入数据。另外,针对训练样本输入数据,给出对应的训练输出数据(样本污染标为1,样本未污染标为0),作为模型训练时用。针对仿真样本输入数据,给出对应的仿真输出数据(样本污染标为1,样本未污染标为0),作为模型判断预测率时用。为什么要将数据归一化(标准化)?一般来说,在实际应用中,各指标之间存在着量纲、数量级等不同方面的问题。因此,在进行训练和仿真模型时,要对数据进行标准化。BP神经网络训练matlab参考代码:%水质检测BP神经网络数据处理(data1、data2、test1、test2都是归一化数据) %data1 训练输入数据%data2 训练结果输出数据%test1 仿真输入数据%test2 仿真结果输出数据%test_num 仿真数据个数P=data1; %训练输入数据(转置)T=data2; %训练输出数据(转置) % 梯度下降法:traingd% 改进BP算法:traingdm traingda trainrp% 共轭梯度算法:traincgf traincgp traincgb trainscg% 拟牛顿算法: trainbfg % 一步正割的BP训练法:trainoss % Levenberg-Marquardt训练方法:trainlm %trainrp 6-8net=newff(minmax(P),8,1,logsig,logsig,trainlm);%net=newff(minmax(P),7,1,logsig,logsig,trainrp);%net=newff(minmax(P),7,1,purelin,logsig,trainlm);%net=newff(minmax(P),7,1,logsig,logsig,trainlm);%net=newff(minmax(P),7,1,logsig,logsig,trainbfg);%net=newff(minmax(P),7,1,purelin,logsig,trainrp); net.trainParam.epochs=200;net.trainParam.goal=1e-5; net=train(net,P,T); %训练 %测试P_test=test1; %测试输入数据(转置)T_test=test2; %测试输出数据 a=sim(net,P_test); A=a; B=A0.5; C=cat(2,A,B,T_test) i=1;n=0; while i= test_num %test_num 具体情况自己定值 if C(i,2)=C(i,3) n=n+1; end i=i+1;end n %仿真正确的个数num=n/i %预测正确率 x=n,i-n; pie(x) %饼状图遗传算法优化BP神经网络参考代码:%权值和阈值优化的主程序(data1、data2、test1、test2都是归一化数据)%data1 训练输入数据%data2 训练结果输出数据%test1 仿真输入数据%test2 仿真结果输出数据%test_num 仿真数据个数num1=6; %输入层神经元个数,自行根据要求修改num2=7; %隐含层神经元个数,自行根据要求修改 P=data1; %(转置)T=data2; %(转置) DR=-40;40;BB=-20;20; DR1=rep(DR,1,num1*num2); %BB1=rep(BB,1,num2); %2 DR2=rep(DR,1,num2); %2 FieldDR=cat(2,DR1,BB1,DR2,BB); %权值和阈值的取值范围 Chrom=crtrp(40,FieldDR); %产生40个初始群体MAXGEN=200; %最大运行代数GGAP=0.9; %代勾gen=0; %代计数器Jm=1;tracec=zeros(MAXGEN,1); % 用于存储训练误差ObjV=objv2b(Chrom,40,P,T); %调用obj2b函数计算当前群体的目标函数值while (gen0) tic FitnV=ranking(ObjV); maxfit index=max(FitnV); Selch=select(sus,Chrom,FitnV,GGAP); %代勾是0,9, Chrom经选择后是36个个体 Selch=recombin(reclin,Selch,0.7); %进行算术交叉 Selch=mutate(mutbga,Selch,FieldDR,0.01); %变异 ObjVSel=objv2b(Selch,36,P,T); %求目标函数值 Chrom ObjV=reins(Chrom,Selch,1,1, ObjV,ObjVSel);%重构组成40个个体 gen=gen+1; Jm index=min(ObjV); %记录最优目标函数值的变化 tracec(gen,1)=Jm; if (gen=1) t(gen,1)=toc; else t(gen,1)=toc+t(gen-1,1); endendplot(1:200,tracec,k-.); P=data1; %(转置)T=data2; %(转置)net=newff(minmax(P),num2,1,logsig,logsig,trainrp); %创建BP网络 A=zeros(num2,num1); %B=zeros(1,num2);C=zeros(num2,1);D=

温馨提示

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

评论

0/150

提交评论