BP神经网络拟合matlab幂函数拟合程序程序中总是出现??? Error using ==> mapminmax Too many output arguments.求大神指点

当前位置: >>
基于RBF神经网络的水泥强度预测模型-毕业设计
基于 RBF 神经网络的水泥强度预测模型 摘 要水泥强度是指水泥试件单位面积上所能承受的外力,它是水泥的最重要性能。28 天龄 期是强度基本稳定的龄期,国内外都把水泥的 28 天强度作为通用水泥的代表强度,所以 测定水泥强度值的主要依据是水泥的 28 天抗压强度。神经网络具有很强的学习、联想和 容错能力及高度非线性函数映射能力,粗糙集可以从数据中挖掘有用的知识,因此本文采 用粗糙集和 RBF 神经网络建立水泥强度的预测模型。 首先利用模糊 c 均值聚类算法对连续 数据集进行离散化。然后利用粗糙集对数据集进行属性约简,提取出影响水泥 28 天抗压 强度的主要因素。根据以提取的主要因素作为 RBF 神经网络的输入变量建立预测模型。 通过仿真实验对建立的预测模型进行验证,实验结果表明本文建立的RBF神经网络模 型具有较高的预测精度。神经网络为水泥强度的快速预测提供了一种新方法,有较好的实 用价值。关键词: 粗糙集 RBF 神经网络 水泥 28 天抗压强度 预测模型I Cement strength Forecast Model Based on RBF Neural Network AbstractThe strength of cement is the cement specimens per unit area can withstand external forces, it is the most important properties of the cement. 28 days of age as the strength of the basic stability of age. 28-day strength of cement and concrete at domestic and abroad as a general representative of cement strength, The neural network has a strong learning, Lenovo and fault-tolerant and highly nonlinear function mapping capability, Rough sets in data mining of useful knowledge This article uses the rough set and RBF neural network to establish a cement strength prediction model First the use of fuzzy c-means clustering algorithm for discretizational of continuous data sets. Then use the rough set attribute data set reduction, extraction of 28 days compressive strength of cement. According to extraction of main factors of establishment as input variables of the RBF Neural network forecast model. Verified through simulation experiments to establish the neural network model, the experimental results show that the article uses RBF neural network can greatly improve the prediction accuracy of the strength of cement. The neural network provides a new method for the rapid prediction of cement strength, has the good practical value. Key Words: Rough S RBF N Cement compressive strength of 28 Forecast model.II 目 录基于 RBF 神经网络的水泥强度预测模型 ........................................................................................ I 摘 要 ........................................................................................................................................................................ I ABSTRACT ....................................................................................................................................................... II 目 录 ..................................................................................................................................................................... III 第一章 绪论 ........................................................................................................................................................11.1 课题研究的背景和意义 .......................................................................................................................... 1 1.1.1 水泥的工艺流程 .............................................................................................................................. 1 1.1.2 课题研究的意义 .............................................................................................................................. 3 1.2 课题的任务及解决方法.......................................................................................................................... 3 1.3 论文的结构 ................................................................................................................................................. 4第二章 课题相关的理论基础 .................................................................................................................52.1 连续属性离散化......................................................................................................................................... 5 2.1.1 离散化的概念 .................................................................................................................................... 5 2.1.2 常用的离散化策略 ........................................................................................................................... 5 2.2 属性约简理论 ............................................................................................................................................. 7 2.2.1 粗糙集的概况 .................................................................................................................................... 7 2.2.2 粗糙集理论的基础知识 ................................................................................................................ 7 2.2.3 贪心搜索策略 .................................................................................................................................... 8 2.3 ROSETTA 软件介绍............................................................................................................................. 10 2.3 神经网络研究.......................................................................................................................................... 11 2.3.1 人工神经网络概述 ....................................................................................................................... 11 2.3.2 RBF 神经网络 ................................................................................................................................. 12第三章 基于 RBF 神经网络的水泥强度预测模型 ............................................................... 163.1 RBF 神经网络预测模型结构框图 ..................................................................................................... 16III 3.2 建立水泥强度预测模型的具体步骤 ............................................................................................... 17 3.2.1 基于 FCM 的连续属性离散化 ..................................................................................................... 17 3.2.2 属性约简 ........................................................................................................................................... 19 3.3.3 数据的归一化处理 ........................................................................................................................ 20 3.3RBF 神经网络模型的建立 ..................................................................................................................... 20 3.3.1 基于 k 均值聚类的 RBF 神经网络 .......................................................................................... 21 3.3.2 水泥强度预测模型的建立.......................................................................................................... 22 3.3.3 仿真实验及结果分析 .................................................................................................................. 22 3.6 结论............................................................................................................................................................. 32第四章 总结 ..................................................................................................................................................... 33 参考文献 ............................................................................................................................................................. 34 致 谢 ..................................................................................................................................................................... 36 附录 ........................................................................................................................................................................ 37IV 南京工业大学本科生毕业设计(论文)第一章 绪论1.1 课题研究的背景和意义1.1.1 水泥的工艺流程 凡细磨成粉末状,加入适量水后成为塑性浆体,既能在空气中硬化,又能在水中硬化, 并能将砂、石等散料或纤维材料牢固地胶结在一起的水硬胶凝材料,通称为水泥。传统水 泥生产过程大致分为五个过程:(1)原料开采, (2)生料制备(粉磨)(3)熟料煅烧, , (4) 水泥制成(粉磨)(5)水泥装运。将它们概括后,主要分为生料制备、熟料煅烧和水泥 , 粉磨三阶段,故俗称“两磨一烧”。如将煤粉制备列入也可改称为“三磨一烧”。 1.原料开采:矿山开采与运输是将矿床用挖掘机、电铲、转机等机械设备开采矿 石,然后经运输设备,如汽车、胶带机,把矿石输送到生产使用点――均化堆场、破碎机 等。 2.生料制备:入窑以前对原料的全部加工过程,包括原料破碎、预均化、配料控制、 烘干、粉磨和生料均化等生产环节。其简要的工艺流程是:石灰石均化堆场 → 原料计量 配料系统及输送 → 原料磨 → 化库储存。 3.熟料煅烧:熟料煅烧过程是指生料出均化库后的预热、煅烧和熟料冷却等环节。其 简要生产流程是:生料均化库 → → 冷却机冷却熟料 → 计量喂料系统 → 熟料库贮存。 预热预分解系统 → 回转窑煅烧 空气输送斜槽 → 提升机或气力输送泵输送 → 生料均熟料输送 →4.水泥制成:水泥组分(除熟料外)的破碎、组分配料和粉磨以及水泥均化等环节。 其简要生产流程是:水泥配料库下 → → 水泥粉磨系统-水泥库贮存。 5.水泥装运和输出过程:不同水泥经贮库、包装设施或散装设施等生产环节出厂。其 简要生产流程是: 1) 袋装水泥 厂 2) 散装水泥 散装库 → 散装机 → 散装汽车或散装火车或轮船输出1组分计量配料站 →输送设备 →稳流称重仓水泥库 →包装机 →推车或摞包机 →水泥栈台 →运输设施出 第一章 绪论石灰石0粘土铜矿渣砂页岩无烟煤石膏3矿山破碎4破碎机 破碎机预均化堆场1 2 5联合预均化堆场7喂料机 原料 配料站6砂页岩8煤仓石膏仓辊式磨系统SP 余 热 锅 炉 余 气 (热 源 ) 9烘干机 粉磨机 选粉机1410、 11 、 12 1317水蒸汽煤磨增湿塔 水 降温生 料 均 化 库 (空 压 机 )1518动态选粉机细粉粗粉余热发电系统余热锅炉余气 ( 235 ℃ )空气输送斜槽SP余 热 锅 炉 余 气 (热 源 )16生料喂料口水SP余 热 锅炉水蒸汽窑尾废气 ( 340 ℃ )五级旋风预热器 T SD型 分 解 炉6 0% 煤 粉煤粉仓24破碎机旋风除尘器 冷凝水回用电能发电机动能汽轮机干法回转窑水蒸汽 旋风除尘器194 0% 煤 粉窑头废气 ( 120 ℃ )AQC 余热锅炉窑头废气 ( 360 ℃ )充气梁式篦冷机20粉煤灰水熟料库21 22、 23 25石灰石混合材库矿渣混合材水泥粉磨调配站26 27 28 图 例 物 流: 气流: 29、 30 产尘点及 除 尘 器 编 号: 噪 声 点: 36 固 体 废 物: 数字石膏联合粉磨系统选粉机细粉粗粉31 、 32、 3334 、 35、 36水泥成品库40 、 41 、 42 、 43 37 、 38 、 39旋 风 除 尘 器: 说 明 :设 有 除 尘 器 的 位 置 均 产 生 固 废, 图 中 标 注 省 略水泥汽车散装机46 、 47汽车散装出厂44、 45回转式包装机袋装水泥成品库汽车外运图 1-1 新型干法水泥生产工艺流程图如图 1-1 为水泥生产工艺流程的一种,具体的执行步骤可由以上流程图得到。2 南京工业大学本科生毕业设计(论文)1.1.2 课题研究的意义 改革开放以来我国水泥行业取得了举世瞩目的成就,1994 年全国水泥工业产量超过 4 亿吨约占世界总产量的 1/3,并连续 10 年高居世界榜首,成为头号水泥生产和销售大国, 水泥也飘洋过海参与国际竞争。数据显示,到 2005 年全国累计水泥产量超过 10 亿吨,比 2004 年增长 9. 3%,创下了 1994 年以来的历史新高。 但是到目前对水泥强度的快速预测还没有一个行之有效的方法,我们知道水泥 28d 的 抗压强度是水泥最重要的一个质量指标,也是确定水泥标号的主要依据。而关于水泥的强 度,差不多所有国家的规范通常都是以按标准试验方法所得的。虽然这种抗压试验方法在 建筑工业中应用了很多年,但随着工业与结构设计理论的高速发展,现代化生产施工进度 的加快,这种需时 28d 才能获得结果的实验方法,己不能满足及时地判定,控制水泥质量 的要求。因此水泥厂商企业等必须进行水泥强度预测,才能够快速的掌握水泥生产质量, 从而根据水泥生产质量判定水泥粉磨细度、混合材料品种及掺加量等生产控制参数,为调 整水泥质量,确证水泥出厂符合有关要求提供依据。且施工单位同样希望在施工时掌握水 泥实物质量,对此如果没有快速的强度预测,水泥生产厂就不能及时有效的包装和托运水 泥出厂,加快资金周转,增加企业的收益。并且建筑施工部门也就不能合理有效地使用水 泥,节约水泥用量和确保工程质量。因此,无论是生产企业还是使用建筑单位都必须从自 己的需要出发研究水泥强度的快速测定方法。1.2 课题的任务及解决方法由于本文研究的目的是解决水泥 28d 强度值的快速预测问题,因此预测模型的输出值 为水泥 28d 强度值,通过对这个值相关影响因素的分析,最后确定与水泥 28d 强度值关系 密切且容易测得的参数作为预测模型的输入数据 拟采用的研究手段:首先收集水泥的一些属性及相应的值整理成决策表, 利用粗糙集从 中数据中找出对抗压强度具有主要影响的因素, 采用 RBF 神经网络的进行建模, 预测水泥 强度,最后验证所得到的预测模型是否有效。 本课题的解决方法如下: 1)将收集到的与水泥 28d 强度相关的原始数据(水泥的属性包括:loss,sio2 ,比表面积, 一天抗压强度等)进行整理制成决策表,便于软件处理。 2) 用 MATLAB 软件中的 FCM 函数进行离散化处理(原始数据是连续的,不便于直3 第一章 绪论接进行属性约简,因此需先进行离散化) 。 3) 利用 Rosetta 函数中的 johnson’s algorithm 进行属性约简,提取出对水泥 28d 抗压强度有影响的主要因素。 4) 利用 RBF 神经网络建立预测模型,得出预测模型,并比较此模型的实际误差。 5) 对 RBF 神经网络模型进行改进,增加预测模型的精度。1.3 论文的结构本论文一共分为四章内容,其每章节具体内容如下所述: 第一章绪论主要介绍了本课题中水泥的工艺流程以及课题研究的意义。同时,对本课 题需要解决的任务和本次设计拟采用的实现方案进行了简要的介绍。 第二章介绍了课题中所要用到的相关理论知识,包括连续属性离散化、粗糙集理论、 RBF 神经网络理论。 第三章是本文的重点,主要介绍了由水泥的原始数据该怎样建立模型完成预测,其中 分为三个步骤: ①样本数据整理, 利用 FCM 进行连续属性离散化; ②将离散化数据用 rosetta 进行属性约简。③建立 RBF 神经网络模型及得出仿真实验结果。 第四章则总结了基于 RBF 神经网络的水泥强度预测模型的应用研究中所遇到的问题, 并得出相关结论。4 南京工业大学本科生毕业设计(论文)第二章 课题相关的理论基础2.1 连续属性离散化2.1.1 离散化的概念 在运用经典粗糙集理论处理决策表的时候,要求决策表中的值用离散数据(如整型、字 符型、枚举型)表达。如果某些决策属性或条件属性的值域为连续值(如浮点型数据)表达, 则在处理前必须进行离散化。并且,即使对于离散数据,有时也需要通过将离散值进行合 并而得到更高抽象层次的离散值,这是粗糙集理论中的一个重要研究课题。另外,对连续 型属性的离散化使得数据更接近于知识,容易被用户和专家理解。同时,离散化能起到数 据简化和归约的作用,便于储存。在大数据量的情况下,与未进行离散化的数据上进行挖 掘相比,离散化挖掘方法所需的I/O操作要少很多。 离散化实质上可归结为:利用选取的断点来对条件属性构成的空间进行划分。把这个 n(n 为条件属性的个数)维空间划分成有限个区域,使每个区域中的对象的决策值相同。设T ? ?U , A , C , D ? 是一个决策系统, A ? C ? D是属性的集合,子集 C 和 D 分别为条件属? 性集和决策属性集, U ? ?x 1, x 2 , , x N ? 是有限对象的集合即论域。设 a ? C , a 为连续属性,属性 a 的值域 V a 上的一个断点记为 ? a , c ? , c 为实数集。在值域 V a ? ?l a , ra ? 上的任意? ? 一 个 断 点 集 合 ?? a , c 1 ?,a , c 2 ?, ? a , c k ?? 定 义 了 V a 上 的 一 个 分 类 Pa ,Pa ???c 0, c 1 ?, 1, c 2 ?, , k , c k ? 1 ?? ?c ? ?c,il a ? c 0 ? c 1 ? c 2 ? ? ? c k ? c k ?1 ? ra ?U。令a ? x i ? ? j ? a ? x i ? ? ?c j , c j ? 1? ,对于任意 x1, , j ? ?0, ? , k ? ,这样就对属性 a 进行了离散化。 2.1.2 常用的离散化策略 常用的离散化策略有: 1.无监督算法 (1)等频率划分算法5 第二章 课题相关的理论基础此离散化算法将每个属性值域划分为频率相等的区间,使每个区间包含相同数量的对 象。 (2)等距离划分算法 这种方法是最简单的离散化方法。可以描述为是在每个属性上,把属性值以一种简单 地方法划分为距离相等的区间。不用考虑每个区间属性值个数的多少。该方法适用属性值 分布均匀的情况。 由于上述两种无监督算法不考虑决策属性,所以分类效果一般不理想。 2.有监督算法 (1)自然算法 自然算法根据需要离散化的某个属性值将对象排序,按照对象的排序,只要对象的决 策值改变,就产生一个新区间,该算法产生保持信息系统一致性所需的所有分割点。 (2)半自然算法 半自然算法与自然算法相似,但产生的分割点较少,是自然算法分割点的子集。 上述两种自然算法产生的分割点较多,因此经常作为其他离散化算法的初始分割点。 (3)ChiMerge法 ChiMerge法是由Kerber提出的有监督方法。ChiMerge法是一种自动化离散算法。使用? 来统计对一个特征已知的多个区间质量进行对比分析。 这个算法根据输出样本分类确定2两个相邻区间中数据分布的相似性。 如果 ? 2 的检验结果是输出类独立于特征区间, 那么区 间就应合并,否则就表示区间之间的统计差别较大,不能进行合并。 (4)Chi2算法 在ChiMerge法中需要确定 ? 2 统计量的阈值 ? ,很多情况下, ? 的确定是比较困难的。 因此,让数据本身决定 ? 是理想方法。据此,Liu和Setiono提出了Chi2算法,Chi2算法采用 ChiMerge法作为基础,对ChiMerge算法作了改进,使阈值 ? 根据训练数据本身进行计算。 得到的 ? 值随属性不同而不同,实现了只有在需要的时候才继续合并区间。 (5)布尔推理算法 布尔推理算法是Nguyen和Skowron根据粗糙集理论和布尔推理技术提出的一种离散化 的方法,这是一种全局有监督算法。这种离散化算法是粗糙集理论的离散化算法在思想上 的突破,是基于两个不同的实例的不分明关系,把区分这种分辨关系的任务让其中一个断6 南京工业大学本科生毕业设计(论文)点去执行。这种算法的思想是在保持信息系统的不分明关系不变的前提下,尽量以最少数 目的断点集来将所有实例间的不分明关系区分开。2.2 属性约简理论2.2.1 粗糙集的概况 粗糙集理论是由波兰华沙理工大学 Z.Pawlak 教授在 1982 年提出的,是一种研究不 精确、不确定性知识的数学工具。该理论已经在数据挖掘、机器学习、过程控制、决策分 析和模式识别等领域得到了广泛的应用,并取得了良好的效果。属性约简就是在保持分类 能力不变的前提下,通过对知识的化简导出问题的决策或分类规则,是粗糙集理论中的一 个重要研究课题。它的意义在于可以删除冗余信息,形成精简的规则库以便人们(或者机器 人)做出快速、准确的决策。高效的约简算法是粗糙集应用于知识发现的基础,但属性的最 小约简仍是个难题。属性约简是粗糙集( RS) 理论研究的核心问题之一. 通过属性约简, 可 以成功地剔除知识库中的冗余知识( 属性) , 发现知识库中隐含的关联和规则, 帮助人们做 出正确简捷的决策。通常依据是否考虑决策属性将知识库表示为决策表或信息表的形式, 对决策表的约简又称相对约简, 通常它不是唯一的, 约简中属性个数的多少直接影响着属 性值的约简过程和决策规则的繁简。 因此, 要得到最简洁的决策必须找到包含最少属性的 约简, 即最小( 最优) 约简。 遗憾的是 Wong 等已经从计算复杂性的角度证明了寻找决策 表的最小约简是 NP- hard 问题。解决这类问题的方法一般是启发式搜索, 通过在算法中加 入启发式信息,缩小问题的搜索空间, 进而获得最优解或近似最优解。属性的重要性是算 法的重要启发式信息,目前报道的属性重要性主要有根据差别矩阵中属性频度的、依据属 性信息熵的和依据属性依赖度的等。 2.2.2 粗糙集理论的基础知识 首先给出决策表的概念,在粗糙集理论中, 决策表( decision table) 被定义为T = ( U, A ) , 其中U 为对象的非空有限集合, 称为论域; A = C ∪ D 非空, 其中C 称为条件属性 集, D 称为决策属性集。 定义1 设a∈A,P ? A,关于属性子集P的二元关系IND(P)称作不可分辨关系定义为I N D P? ( )??,? ? x y? U,U ?? , P? a ?x a ? ???ay(2-1)如果 ? x , y ? ? P ,称 x 和y 是P 不可分辨的。易知对任意P ? A,不可分辨关系 IN D ? P ? 是U7 第二章 课题相关的理论基础上的等价关系。 符号U/ IN D ? P ? ( 简记U/ P ) 表示不可分辨关系 IN D ? P ? 在U 上导出的划 分。 定义2 设 T ? ? U , C ? D ? 是一决策表, R ? C , X ? U , X 关于 R 的下近似集是 U 中根据已有 知识判断必定属于 X 的对象所组成的最大集合。即R X ? U ?Y ? U / R , Y ? X ?(2-2)定义3 设 T ? ? U , C ? D ? 是一决策表, D 的C - 正区记为 P O S C ? D ? , 即P O S C? D? U ?CXD(2-3)X ? U/D 的C正域是论域U 的所有那些使用条件类U/ C 所表达的知识。能够正确分类到决策类 U/ D 之中的对象的集合。 定义4 设 T ? ? U , C ? D ? 是一决策表, c ∈ C。 若 P O S ? C ? ? c? ? ? D ? ? P O S C ? D ? 。则称c 在 C 中是不必要的,否则称c 在C 中是必要的。 在决策表T 中删除必要属性将导致T 的不一致性。 ? c ? C , 在C 中皆是必要的。 对 若c 称C 是独立的,否则称C 是依赖的。 定义5 设 R ? C ,称R 为C 的D - 约简当且仅当R 是C 的独立子集。且POS R ? D ? ? POSC ? D ?(2-4)C 的D - 约简称为相对约简,简称约简。 定义6 C 的所有必要属性组成的集合称为C 的核, 记为CORE( C) , 它是C 的所有约简 的交, 即CORE ?C ? ? ? RED ?C ?(2-5)其中RED( C) 表示C 的约简。 2.2.3 贪心搜索策略 在获得核属性的情况下,贪心算法的主要思想是在被选择的子集尽可能小的条件下, 把非核属性根据某种启发信息依次添加到核属性集中,直至获得一个属性约简。 1) 属性选择策略 给定一个决策表T = ( U, C ∪D ) , 设R 是要获得的一个约简, 考虑 P O S R ? D ? , 它是根8 南京工业大学本科生毕业设计(论文)据分类U/ R 的信息可以准确划分到决策属性D 的等价类中去的对象的集合, 这个集合中 元素的个数card( P O S R ? D ? )就是U 在等价关系 IN D ? R ? D ? 下相容的实例个数, 相应地,P O S R ? D ? / IN D ? R ? D ? 。表示D 的R - 正区在等价关系IND( R ∪ D) 下的划分, 在这个划分中, 设有某个集合具有最多的元素个数,记为max size( P O S R ? D ? / IN D ? R ? D ? ) , 这 个值表明集合 P O S R ? D ? 在关系 IN D ? R ? D ? 下的分类能力, 其值越大,说明R 的属性强 度大, 即重要性高; 反之强度小, 重要性也低。 算法的策略就是, 给定一个被选择的属性a , 如果把它加入到约简R 中, card( P O S R ? D ? ) 的越大,而max size( P O S R ? ? a ? ? D ? / IN D ? R ? ? a ? ? D ? ) 的值比添加其他任 何属性对应的值都要大, 便选择属性a到约简中, 综合考虑如上的两个因素, 用其乘积作为 属性a 的重要度. 2) 贪心算法描述 设R 是要获得的一个约简, P 是尚未选择的条件属性集, X 是去除相容性例子的实例 集合, EXPECT是属性依赖度的终止条件, 有如下算法: 算法1 属性约简的贪心算法 初始化, 令R = CORE ( C),P = C - CORE ( C) ,k = 0 ( 1) 去除U 中所有相容的实例, 即X = U - POS R( D ); ( 2) 计算 k ? ? R ? D ? ?ca rd ? P O S R ? D ? ? ca rd ? U?, 若 k ? 1 ,算法终止;否则, 若POSR ( D) = POSC ( D) , R 是约简集合, 算法终止; ( 3) 对任意p ∈ P ,计算v p ? ca rd P O S R ? ? P ? ? D ? 和 m p ? m ax _ size P O S R ? ? P ? ? D ? / ? R ? ? P ? ? D ?????( 4) 对所有p ∈ P , 计算具有最大值的 v p ? m p p , 并且令 R ? R ? ? P ? ( 5) 返回到步骤( 1) 3) 算法复杂性P ? P? ? ? p设card( C) = N , 贪心算法的复杂性主要由决策表中属性组合引起, 在最坏情况下核为 空, 最多需要N 次选择过程, 第i 次寻找所考虑的属性数为N - i + 1, 故总次数为? ?Ni ?1N? i ? 1? ? N / ? N ? 1? / 2(2-6)9 第二章 课题相关的理论基础若不考虑实例个数对计算时间的影响, 该算法最多在 O ? N 2 ? 时间内找到满足终止条件的属 性约简,算法的平均时间复杂性视对象的不同不易确定。 2.3 ROSETTA软件介绍 本文所采用的是ROSETTA软件进行属性约简的,Rosetta是由挪威科技大学计算机与 信息科学系和波兰华沙大学数学研究所合作开发的一个基于Rough集理论框架的表格逻辑 数据分析工具包,包括了计算核和图形用户界面,能够在微机的Windows NT/98/95操作系 统上运行。Rosetta的设计实现了对数据挖掘和知识获取的支持从数据的初始浏览和预处 理,计算最小属性约简和产生if-then决策规则或描述模式,到对所得到的规则或模式的验 证和分析。Rosetta的目的是要作为基于不可分辨关系模型的通用工具,不是为某个特定的 应用领域而设计的专用系统。 Rosetta 提供了一个很直观的图形用户接口,采用了数据导航的技术,图形用户界面是 高度面向对象的,所有的操作对象被表示为独立的图形用户界面的元素项,每个元素项有 自己的与上下文相关的菜单集合。 Rosetta 的计算核心也可以采用命令行程序。计算核心提供了如下的功能: ? 输入/输出 ? ? ? 通过 ODBC 和 DBMSs 部分集成。 输出格式包括规则、约简、表格、图象以及 C++和 Prolog 等格式。预处理 ? ? 不完备数据表的完备化处理(数据补齐) 。 连续属性值的离散化。?计算 ? ? ? ? ? ? 支持有教师学习和无教师学习。 支持用户自己定义的不可分辨关系概念。 对不同类型的不可分辨关系有效地计算精确约简和近似约简。 产生 if-then 规则或以约简形式表达的描述模式。 执行文件。 支持交叉验证测试。?后处理 ? 过滤约简结果和所得到的规则。?验证与分析10 南京工业大学本科生毕业设计(论文)? ? ? ? ?用得到的规则处理未知样本。 产生混淆矩阵、ROC 曲线和标度曲线。 用一定的质量标准对规则进行评价。 统计假设测试。其它 ? ? 公差关系聚类。 计算划分和可变精度 Rough 集近似。2.3 人工神经网络2.3.1 人工神经网络概述 1943 年, 心理学家 W.S.McCulloch 和数理逻辑学家 W.Pitts 建立了神经网络和 数学模型, 称为 MP 模型。他们通过 MP 模型提出神经元的形式化数学描述和网络结构 方法,证明单个神经元能执行逻辑功能,从而开创人工神经网络研究的时代。 人工神经网络(Artificial Neural Networks,简写为(NNs)也简称为神经网络(NNs) 或称作连接模型(Connectionist Model) 是以计算机网络系统模拟生物神经网络的智能计 算为基础, 由大量处理单元互联组成的非线性、自适应信息处理系统,通过模拟大脑神 经网络处理、记忆信息的方式进行信息处理。网络上每个结点相当于一个神经元,可以记 忆(存储) 、处理一定的信息,与其他结点并行工作。人工神经网络具有自学习和自适应 的能力, 可以通过预先提供的一批相互对应的输入-输出数据, 分析掌握两者之间潜在 的规律,最终根据这些规律,用新的输入数据来推算输出结果。人工神经网络具有四个基 本特征: (1)非线性 非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或 抑制二种不同的状态, 这种行为在数学上表现为一种非线性关系。具有阈值的神经元构 成的网络具有更好 的性能,可以提高容错性和存储容量。 (2)非局限性 一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通 过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。 (3)非常定性 人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时, 非线性动力系统本身也在不断变化。经11 第二章 课题相关的理论基础常采用迭代过程描写动力系统的演化过程。 (4)非凸性 一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系 统具有多个较稳定的平衡态,这将导致系统演化的多样性。 2.3.2 RBF 神经网络 1) RBF 神经网络的结构 径向基函数(Radial basis function, RBF) 神经网络由于其简单的拓扑结构和全局逼近能 力,在模式识别、信号处理、非线性系统的建模和控制等方面得到了广泛的应用。RBF 神 经网络由三层构成,第一层为输入层,第二层为隐含层,第三层是输出层,其网络的拓朴 结构如图 2-1 所示:X1 y1X2yMXL图2-1 径向基函数网络的拓扑结构假设 RBF 神经网络具有 L 个输入和 M 个输出,RBF 网络的响应实现一个映射Y :RL? RM,则 RBF 神经网络的映射关系为:Yk ? ? k ??wj ?1njk??x ? cj?(2-7)其中:yk表示输出层第 k 个节点的输出,( k =1,2,…,M) 表示输出层第 k 个节点的阈值;L?kx? R为网络输入向量;12 南京工业大学本科生毕业设计(论文)n为隐层节点的个数;Lcj ? Rw jk?1 ?j ? n ? 为隐层第j 个节点的中心;表示第 j 个隐层节点连接到输出层第 k 个节点的权值;? ? ? ? 为径向基函数; ?表示欧几里德范数;隐层至输出层之间的连接权值和输出层节点的阈值,可以通过最小二乘法获得。 隐层作用函数的形式有以下几种,最常用的是第四种高斯函数。f? x ? ? ex p?x? ?? 1? x / ??2(2-8)a ? 0f1?? 2 ? x? x22?a(2-9)f? x ? ? ?? 2??? ? ? ?1(2-10)? x ? ci ? R i ? x ? ? ex p ? ? ? 2 2? i ? ?i ? 1 , 2 , m, ?(2-11)对于高斯函数,其中 x 是 n 维输入向量; c i 是第 i 个函数的中心; ? i 是第 i 个感知的变 量(可以自由选择的参数),它决定了该基函数围绕中心点的宽度; m 是感知单元的个数。 高斯函数具有如下优点: ? 径向对称。 ? 光滑性好,任意阶导数均存在。 ? 函数表示形式简单,便于进行理论分析。 2) RBF 神经网络的映射机理 RBF 神经网络其参数由于 RBF 中心的固定而得以线性化,因此隐层充当了无调节参 数的固定的非线性转化环节,它将输入空间映射到一个新空间,唯一的调节参数是线性叠 加权值,这就是 RBF 网络的优势所在。隐含层执行的是一种固定不变的非线性变换,将输 入空间映射到一个新的空间。非线性变换单元仅仅对中心附近的输入信号敏感,随着与中 心距离的加大,非线性变换单元的输出很快减小到很小的值,表现出这种网络具有局部逼 近能力,输出减小的快慢由宽度 ? 决定,即 ? 越大,减小得越慢,反之 ? 越小,则减小的 越快。 中心 c 代表了比较集中的一组数据的中心值,而这组数据就构成了一个类,因此,c13 第二章 课题相关的理论基础代表了输入数据的一种模式。用于神经网络学习的样本数据含有有限不同的模式,各模式 对应不同的中心值。现在可以采用一定的数学方法,由输入数据提取代表不同模式的数据 中心,并分配适当的宽度值,由各个数据中心 c i 及对应的宽度值 ? 。 ,即构成了全部非线性 变换单元。然后,非线性变换单元的输出再经过输出层的权值调整,从而得到期望的输出。 在实际应用中, 构造和训练一个 RBF 神经网络就是要使基函数通过学习, 确定出每个 隐含层神经元基函数的中心 c i ,宽度 ? 以及隐含层到输出层的权值这些参数的过程,从而 可以完成所需的输入到输出的映射。与 BP 网络只由网络权参数构成不同,RBF 网络的三 部分参数在映射中所起的作用是不同的。隐含层的中心和宽度代表了样本空间模式及各中 心的相对位置,完成的是从输入空间到隐含层空间的非线性映射。而输出层的权值是实现 从隐含层空间到输出空间的线性映射。必须明确,隐含层的设计是 RBF 网络的核心,中心 c。的选取合适与否将从根本上影响 RBF 网络的性能指标。在 RBF 网络结构中,对于训练 样本,通常取目标函数为:E ? 1 2? ?dj ?1Nj? f? x ??j2(2-12)其中 N 为样本数,由以上分析可知,指标是中心 c、宽度 ? 和权值 w 的函数,网络训 练的过程就是通过调整中心 c、宽度 ? 。和权值 w ,使 E 趋于最小的过程。 3) RBF 算法的数学表达 设 训 练 样 本 集 X ? ? x1 , x 2 , ? , x p ? , p 为 样 本 个 数 , 其 中 第 i 个 输 入 样 本x i ? ? x i 1 , x i 2 , ? , x in ? ? RT n;而 y i ? ? y i1 , y i 2 , ? , y in ? ? R m 和 o i ? ? o i1 , o i 2 , ? , o in ? ? R m 分别是网T T络对应 x i 的实际输出和期望输出。设网络隐含层的节点个数有 f 个, w jl 表示第 l 个隐节点 到第 j 个输出节点的连接权值。 RBF 网络隐层的激励函数采用高斯基函数,它对输入激励产生一个局部化的响应这个 特点使高斯隐层对输入样本有一个聚类的作用,隐层节点数就代表聚类的类数,隐层的中 心为这一类的凝聚中心点。该函数的表达式为:? x ? cl R l ? x ? ? ex p ? ? 2 2? l ? ?2? ? ? ?(2-13)c l ? ? c l 1 , c l 2 , ? c ln ? , ? l2?l? 1, 2, ? f? 分别是第 l 个隐层神经元响应函数的中心向量和宽度,当输入样本为 x i 时,网络的实际输出为:14 南京工业大学本科生毕业设计(论文)y lj ? f? xi ? ? ?fw jl R l ? x i ?j ? 1, 2, ? m(2-14)l ?14)高斯径向基函数概念 本文中隐层节点采用高斯径向基函数:2 ? u ? ? ?u ? ? e x p ? ? 2 ? ? 2? ?(2-15)隐层节点输出为??x ? cj? ? e x p? ? 2? ? ?1 ?2 i ?1?Lx? i2 ? cj ? ? ?(2-16)? 为高斯径向基函数的方差,其中 x 和 c j 均为 L 维向量。RBF 神经网络算法的难点在于网络隐层节点的中心选取上,以下给出确定隐层节点中 心的算法,并求取高斯径向基函数的方差 ? 。? ?dm 2n(2-17)dm为所选中心之间的最大距离。15 第三章 基于 RBF 神经网络的水泥强度预测模型的建立第三章基于 RBF 神经网络的水泥强度预测模型人工神经网络方法具有很强的学习、联想、容错能力和高度非线性函数映射能力用神 经网络方法预测水泥强度不需要过多的数理统计知识,也不需要对原始数据进行过于复杂 的预处理,其处理过程接近人脑的思维过程。神经网络为水泥强度的快速预测提供了一种 新方法,有较好的实用价值。因此可以利用RBF神经网络能以任意精度逼近任意复杂的非 线性函数这一特点,建立水泥强度预测模型。 本文采用基于RBF神经网络的函数建立水泥强度的预测模型,首先利用粗糙集属性约 简的方法提取出影响水泥28d抗压强度的主要因素。然后利用FCM聚类算法将提取出的影 响水泥28d抗压强度的主要因素进行离散化。 其次根据提取的主要因素用RBF神经网络进行 建模,预测水泥强度参数,判定是否合格。最后验证所得到的预测模型是否可以实际应用。 神经网络为水泥强度的快速预测提供了一种新方法,有较好的实用价值。建立RBF水泥强 度的预测模型也对进一步预测水泥强度是否合格提供了较好的指导模型。3.1 RBF 神经网络预测模型结构框图样本数 据(离 散化处 理后)属性约 简RBF络神 经 网数据的归一化处 理水 泥 的 28d强 度 值图 3-1RBF 神经网络预测模型结构框图如图 3-1 所示,RBF 神经网络预测模型的建立步骤按上述图例顺序进行,首先对样本 简化,规范样本数据离散化后的数据样本,然后进行属性约简提取主要属性因素,接着对 主要属性因素进行归一化处理,最后就可以用 RBF 神经网络对函数进行建模。16 南京工业大学本科生毕业设计(论文)表 3-1样本数据属性 Loss SiO2 Al2O3 Fe2O3 CaO MgO KH n p f-CaO C3S C2S C3A C4AF 比表面积 cm2/g) 标准稠度(%) 细度(%) 一天抗压(Mpa) 三天抗压(Mpa) 一天抗折(Mpa) 三天抗折(Mpa) 二十八天抗压 (Mpa)1 0.36 22.17 5.56 3.55 66.44 0.96 0.9 2.41 1.59 1.08 58.97 19.09 8.95 10.79 350 24.92 3.3 17.2 33.5 4.1 6.4 58.32 0.3 21.98 5.58 3.44 65.74 1.02 0.899 2.44 1.62 0.85 58.22 19.11 8.95 10.46 338 24.96 4.3 17.2 32.6 3.9 6.9 60.13 0.18 22.21 5.66 3.44 64.71 0.96 0.871 2.44 1.65 0.85 51.74 24.67 9.16 10.46 346 25.24 2.8 13 32.5 3.2 6.8 60…… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… ……20 0.41 22.09 5.58 3.44 65.42 1.25 0.889 2.45 1.62 0.79 55.99 21.11 8.95 10.46 352 24.9 2.2 15.6 30.4 3.6 6.1 58.221 0.4 22.11 5.74 3.44 65.24 1.08 0.881 2.41 1.67 0.96 54.02 22.65 9.38 10.46 342 25 3 13.6 32.7 3.5 6.7 60.422 0.12 22.45 5.2 3.55 66.14 0.9 0.896 2.57 1.46 1.02 58.69 20.1 7.76 10.79 361 25.5 2.4 16.2 32.2 3.8 6.6 60.93.2 建立水泥强度预测模型的具体步骤3.2.1 基于 FCM 的连续属性离散化 样本在进行属性约简前,需经过离散化处理。处理过程如下: FCM聚类算法是将论域U中的样本点分为c类(2≤c≤n),第 i 类的聚类中心用 v i 表示,其 中任意特征点 x j 属于第 j 类的隶属度 u ij ( 0 ? u ij ? 1) 为:?uvi ?j ?1 n j ?1nm i jxj(3-1)m ij?u17 第三章 基于 RBF 神经网络的水泥强度预测模型的建立u ij ?1 ? x j ? vi ?? x ?v ? k ?1 k ? jc? ? ? ?2 / ( m ? 1)(3-2)且 u ij 满足如下条件:? u ij ? 1, j ? 1,, , n 2 ?nc(3-3) (3-4)i ?10 ? ? u ij ? n , i ? 1,, , c 2 ?j ?1FCM算法的目标函数为:J m (U , V ) ? ? ? ( u ij )i ?1 j ?1 c n mx j ? vi2(3-5)式中 m ? 1 ,为影响隶属度矩阵 U 模糊化程度的指数权重。聚类问题就是求使式(3-5)最? 小的隶属度矩阵 U ? ?u ij ?c ? n 及类别中心 V ? ?v 1, v 2 , , v n ? 。FCM算法所得的 U 是对应样本集的模糊划分矩阵, 可用隶属度最大原则对样本集 X 进 行离散化:如果 u i k ? max ?u ik ??1 ? i ? c ? ,则将 x k 归入第 i 0 类,即样本 x k 对哪一个聚类中心0i的隶属度最大,就将其相对应的离散属性值作为样本 x k 的离散度。 FCM离散化具体程序如下:load shuini28dkyqd. load data.mat ;%表为下载的原始数据 B=[]; [N1,N2]=size(data); for idy=1:N2; a=data(:,idy) %原始数据 k=3; %离散区间为3; [center,U,obj_fcn]=fcm(a(:,1),k); % 将 数 据 进 行 模 糊 C- 均 值 聚 类 , n 为 数 据 untitled 的 列 数 , n=1,2,3,4,center为迭代后的聚类中心,U为所有数据点对聚类中心的隶属度函数矩阵,obj_fcn 为目标函数值; c1=sort(center); %将得到的聚类中心排序; newU=[]; %生成一个新的隶属度矩阵newU;按照聚类中心的排序重新排序; for idx=1:k; a1=find(center==c1(idx)); newU1=U(a1,:); newU=[newU;newU1 ]; [a,b]=max(newU); % b 是离散化所得的结果,b’为将b转置后的结果 b=b' ; % b'为将b转置后的结果 B=[B b];18 南京工业大学本科生毕业设计(论文)将离散化的离散化值整理,得到的结果如表 3-2 所示。表 3-2 FCM 离散化的样本数据属性 Loss SiO2 Al2O3 Fe2O3 CaO MgO KH n p f-CaO C3S C2S C3A C4AF 比表面(cm2/g) 标准稠度(%) 细度(%) 一天抗压(Mpa) 三天抗压(Mpa) 一天抗折(Mpa) 三天抗折(Mpa) 二十八天抗压 (Mpa) 3.2.2 属性约简1 3 2 2 2 3 2 3 2 3 2 3 1 3 2 2 2 2 3 3 3 2 22 2 2 2 2 2 2 3 2 3 1 3 1 3 2 1 2 3 3 3 2 3 33 2 2 3 2 2 2 2 2 3 1 1 3 3 2 2 3 2 1 3 1 3 3…… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… …… ……20 3 2 2 2 2 3 3 2 3 1 2 2 3 2 3 2 1 2 2 2 2 221 3 2 3 2 2 2 2 2 3 1 2 2 3 2 2 2 2 1 3 2 3 322 1 3 2 2 3 1 3 3 1 2 3 2 2 2 3 3 1 2 3 2 3 3本文中,属性约简及决策规则的提取采用 Rosetta 软件来实现。Rosetta 是一个基于粗 糙集理论框架的表格逻辑数据工具。它支持数据挖掘和知识发现的各个过程:从原始数据 的浏览和预处理,到计算最小属性集,生成“if-then”规则或描述模型,到推理规则的评价 或分析。它提供了多种数据预处理功能,如决策表补齐、决策表离散化等及其算法,同时 提供了粗糙集中常见的约简和规则的获取算法,支持从数据预处理到预测和分析规则的全 过程,是一个很好的粗糙集理论软件。 将上节中经 FCM 离散化后整理得到的表格导入 Rosetta 软件,利用 Rosetta 函数中 的”johnson’s algorithm”进行属性约简,提取出对水泥 28d 抗压强度有影响的主要因素。整 理后得到的八个主要属性因素为:{ Loss ,Fe2o3,CaO ,KH,C3A ,比表面积,标准稠 度,一天抗压强度}19 第三章 基于 RBF 神经网络的水泥强度预测模型的建立3.2.3 数据的归一化处理由于 RBF 网络隐层接受区域的局部特性, 使得其在估计训练数据以外的函数值时效果 较差。然而,一个归一化 RBF(normalized radial basis function, NRBF)网络可以使得径向基 函数覆盖整个输入空间,对位于两个或多个交叠区中的数据点,会得到较好的插值拟合输 出,NRBF 网络的输出归一化有助于提高系统的泛化能。同时,由于归一化使得网络提高 了插值特性, 因此对高斯函数宽度等参数的选择也不特别敏感, 比对 UNRBF(un-normalized radial basis function, UNRBF)网络的影响小。 NRBF 网络之所以具有这些优点, 是由于 NRBF 网络可以展示局部和非局部的性能,而 UNRBF 网络只有局部的性能。 这里选择归一化有如下优点: 1)对位于两个或多个交叠区中的数据点会得到较好的插值拟合输出,有助于提高系统的 泛化能力。 2)归一化的目的是避免基函数过分重叠在向量基空间,可以使非线性的神经网络学习局 部线性化。 3)因为归一化使网络提高了插值特性,因此对于高斯函数宽度的选择也不特别敏感 4)基函数经过归一化,可以局部提高致信区间的精确度,提高计算效率。 5)为了在输入信号空间中得到好的单元分布。即在输入空间的任意一点上归一化基函 数的和等于 1。这样归一化系统在输入信号空间每一点上的特征相同,而在未归一化系统中 每一点有不同的权值 为了避免输入变量物理意义和单位的不同对 RBF 神经网络建模的影响, 必须对输入变 量进行 [-1,1] 归一化处理,归一化方法如下: 线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue) 说明: x、y 分别为转换前、后的值,MaxValue、MinValue 分别为样本的最大值和最小值。 在 matlab 中,用于归一化的方法共有三种: (1)premnmx、postmnmx、tramnmx (2)prestd、poststd、trastd (3)是用 matlab 语言自己编程。 本文采用的归一化方法是 mapminmax 函数,这个函数可以把矩阵的每一行归一到[-1 1]。 [y1,PS] = mapminmax(x1)。 其中 x1 是需要归一的矩阵,y1 是结果20 南京工业大学本科生毕业设计(论文)y2 = mapminmax('apply',x2,PS) 当需要把归一的数据还原时,可以用以下命令 x1_again = mapminmax('reverse',y1,PS)3.3.4RBF 神经网络模型的建立1) 基于 k 均值聚类的 RBF 神经网络 对于 RBF 神经网络建模,首先要进行 RBF 神经网络的结构设计。即输入层、隐含层 和输出层的神经元数目的选择。输入层神经元数目等于模型输入变量个数,输出层的神经 元数目是实际问题本身, 隐含层神经元数目的决定还没有统一的规则, 本文的 RBF 网络程 序,直接调用 MATLAB 中的 newrb 库函数,该函数能针对具体问题去自动选择隐层的神 经元数。 K 均值聚类方法描述,假设 k 为迭代次数,第 k 次迭代的聚类中心为c1 ? k ? , c 2 ? k ? , ? , c h ? k ? , 相应的聚类域为 w1 ? k ? , w 2 ? k ? , ? , w h ? k ? 。 K-means 聚类算法确定 RBF网数据中心 c i 和扩展常数 ? i 的步骤如下: ( 1 )算法初始化:选择 h 个不同的初始聚类中心,并令 k =1.初始聚类中心的方法很 多,比如,从样本输入中随机选取,或者选择前 h 个样本输入,但这 h 个初始数据中心必 须取不同值。 ( 2 )计算所有样本输入与聚类中心的距离 X j ? c i ? k ? , i ? 1, 2, ? , h , j ? 1, 2, ? , N 。 ( 3 ) 对 样 本 输 入 Xi?Xjj, 按 最 小 距 离 原 则 对 其 进 行 分 类 : 即 当 时, X j 即被当归为第 i 类,即 X j ? w i ? k ? 。? ? m iniX j ? c i ? k ? , i ? 1, 2, ? , h( 4 )重新计算各类的新的聚类中心:ci?k? 1? ?1 Nix ? w? i?x, i ? 1 , ? , 2?kh ,3-6式中, N i 为第 i 个聚类域 w i ? k ? 中包含的样本数。 ( 5 )如果 c i ? k ? 1 ? ? c i ? k ? ,转到步骤(2) ,否则聚类结束,转到步骤(6) 。 ( 6 )根据各聚类中心之间的距离确定个隐节点的扩展常数。隐节点的扩展常数取21 第三章 基于 RBF 神经网络的水泥强度预测模型的建立? i ? kd i , 其 中 d i 为 第 i 个 数 据 中 心 与 其 他 最 近 的 数 据 中 心 之 间 的 距 离 , 即d i = m in c j ? c i ? k ?i, k 称重叠系数。T一旦各隐节点的数据中心和扩展常数确定了, 输出权值 w ? ? w1, w 2, ? , w h ? 就可以用有 监督学习方法(如梯度法)训练得到,但更简洁的方法是使用最小二乘法(LMS)直接计 算。最后就可以建立 RBF 网络模型了。2)水泥强度预测模型的建立对于 RBF 神经网络建模,首先要进行 RBF 神经网络的结构设计。即输入层、隐含层 和输出层的神经元数目的选择。输入层神经元数目等于模型输入变量个数,输出层的神经 元数目是实际问题本身,隐含层神经元数目的决定还没有统一的规则。模型的输入变量为 如下的 8 个变量:Loss、比表面积(m2/kg)、Fe2O3 质量分数(%) 、CaO 质量分数(%)、KH 质 量分数(%)、C3A 质量分数(%)、标准稠度、1 天抗压强度。输出量为 28 天抗压强度。 为了说明本文方法的有效性,将两种模型进行了对比。第一种直接用未约简前属性进 行建模,第二种是用约简后的属性作为输入变量进行建模。 3.3 仿真实验及结果分析 将选取的 120 组样本数据的所有属性作为输入量 P 导入所生成的模型中,并导入样本 数据的 28d 抗压强度作为输出量 T。用 120 组样本数据作为训练样本建立 RBF 神经网络模 型,用另外的 60 组样本数据作为检测样本,来验证模型的有效性和泛化能力。 采用基于 k-means 聚类确定 RBF 中 n 个隐节点的数据中心,并根据各数据中心之间的 距离确定隐节点的扩展常数,然后用梯度法训练各隐节点的输出权值,具体程序见附录。 根据数据中心的取值方法,RBF 网的设计可以分为两大类: (1)数据中心从样本输入中选取 这种方法中数据中心从样本输入中选取,如正交最小二乘(OLS)算法,正则化正交最小 二乘(ROLS)算法,进化优选算法等。这类算法的特点是数据中心一旦获得就不再改变, 而隐节点的数目或者一开始就固定,或者在学习中调整。(老师修改的那个程序可能属于 这种,数据中心选的是训练样本的前十个) (2)数据中心动态调节方法22 南京工业大学本科生毕业设计(论文)这类方法数据中心的位置在学习过程中是动态调节的,如各种基于动态聚类(最常用的是 k-means 聚类或 Kohonen 提出的 SOFM 方法,梯度训练方法,资源分配网络 RAM 等)。 本文用两种算法可以达到这个目的,一是基于随机选取样本中心,然后计算权值,便宜. 最后得到训练程序,将预测样本代入后得到预测值.二是基于 k-means 聚类算法做预测,比较 常用也比较广泛. 下图是基于随机选取中心得到的样本预测模型和图像: t1= load data.%约简后的总体样本 ceshiyangben=[data(1:2:238,1),data(1:2:238,2),data(1:2:238,3),data(1:2:238,4),data(1:2:238,5) ,data(1:2:238,6),data(1:2:238,7),data(1:2:238,8)]; ceshiyangbenjieguo=[data(1:2:238,9)]; yuceyangben=[data(2:2:119,1),data(2:2:119,2),data(2:2:119,3),data(2:2:119,4),data(2:2:119,5), data(2:2:119,6),data(2:2:119,7),data(2:2:119,8)]; yuceyangbenjieguo=[data(2:2:119,9)]; %归一化处理 x1 = [guiyihuaceshiyangben,PS] = mapminmax(x1);%进行行列转换做 x2 = [guiyihuaceshiyangbenjieguo,PS] = mapminmax(x2);%进行行列转换做 x3 = [guiyihuayuceyangben,PS] = mapminmax(x3);%进行行列转换做 x4 = [guiyihuayuceyangbenjieguo,PS] = mapminmax(x4);%进行行列转换做 SamNum = 119; % 训练样本数 TestSamNum = 59; % 测试样本数 InDim = 8; % 样本输入维数 ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 SamIn = ceshiyangben'; SamOut = ceshiyangbenjieguo'; TestSamIn = yuceyangben'; TestSamOut = yuceyangbenjieguo'; Centers = SamIn(:,1:ClusterNum);%所有行的前十个作为聚类中心 % 计算各隐节点的扩展常数(宽度) AllDistances = dist(Centers',Centers); % 计算隐节点数据中心间的距离(矩阵) Maximum = max(max(AllDistances)); % 找出其中最大的一个距离 for i = 1:ClusterNum % 将对角线上的0 替换为较大的值 AllDistances(i,i) = Maximum+1; end23 第三章 基于 RBF 神经网络的水泥强度预测模型的建立Spreads = Overlap*min(AllDistances)'; % 以隐节点间的最小距离作为扩展常数 % 计算各隐节点的输出权值 Distance = dist(Centers',SamIn); % 计算各样本输入离各数据中心的距离 SpreadsMat = repmat(Spreads,1,SamNum); HiddenUnitOut = radbas(Distance./SpreadsMat); % 计算隐节点输出阵 HiddenUnitOutEx = [HiddenUnitOut' ones(SamNum,1)]'; % 考虑偏移 W2Ex = SamOut*pinv(HiddenUnitOutEx); % 求广义输出权值 W2 = W2Ex(:,1:ClusterNum); % 输出权值 B2 = W2Ex(:,ClusterNum+1); % 偏移 % 测试 TestDistance = dist(Centers',TestSamIn); TestSpreadsMat = repmat(Spreads,1,TestSamNum); TestHiddenUnitOut = radbas(TestDistance./TestSpreadsMat); TestNNOut = W2*TestHiddenUnitOut+B2; plot(1:TestSamNum,TestSamOut,'r-+',1:TestSamNum,TestNNOut,'b-o'); title('属性约简后的预测值与实际值模型'); xlabel('输出样本个数'); ylabel('预测样本值与实际样本值'); f=abs(TestSamOut-TestNNOut)./TestSamO plot(f); title('属性约简后的样本预测值的相对误差百分数'); xlabel('输出样本个数'); ylabel('预测样本的相对误差'); W2 B2 average1=abs(sum((TestNNOut-(sum(TestSamOut)./59))./TestSamOut))./59%平均相对误差绝对值未约简前的原始数据样本基于随机选取中心得到的建模:24 南京工业大学本科生毕业设计(论文)未约简前的预测值与实际值模型 63 Actual value Predictive value62预测样本值与实际样本值616059585756 0102030 输出样本个数405060图3-7 未约简前模型的预测值与实际值未约简前的样本预测值的相对误差百分数 0.060.05预测样本的相对误差0.040.030.020.0100102030 输出样本个数405060图 3-8 未约简前模型的误差百分数25 第三章 基于 RBF 神经网络的水泥强度预测模型的建立约简处理后建模所得模型:属性约简后的预测值与实际值模型 64 63 62 Actual value Predictive value预测样本值与实际样本值61 60 59 58 57 560102030 输出样本个数405060图 3-9 属性约简后模型的预测值与实际值属性约简后的样本预测值的相对误差百分数 0.070.060.05预测样本的相对误差0.040.030.020.0100102030 输出样本个数405060图 3-10 属性约简后模型的误差百分数26 南京工业大学本科生毕业设计(论文)下图是基于 k-means 聚类(无监督学习方法)确定 RBF 网中 n 个隐节点的数据中心, 并根据各数据中心之间的距离确定隐节点的扩展常数,然后用梯度法(有监督学习)训练 各隐节点的输出权值。当用总体样本进行预测时,精度提高了,但由于数据收集量较大, 成本也会跟着上去,在实际的生产中不能够广泛的考虑各种属性因素的影响,在考虑这种情 况后,经研究分析可以采用粗 K 均值聚类方法改变这种情况,是预测结果更加有效,提高 系统的泛化能力。 t1= load data.%约简后的总体样本 ceshiyangben=[data(1:2:238,1),data(1:2:238,2),data(1:2:238,3),data(1:2:238,4),data(1:2:238,5),data(1:2:238,6) ,data(1:2:238,7),data(1:2:238,8)]; ceshiyangbenjieguo=[data(1:2:238,9)]; yuceyangben=[data(2:2:119,1),data(2:2:119,2),data(2:2:119,3),data(2:2:119,4),data(2:2:119,5),data(2:2:119,6), data(2:2:119,7),data(2:2:119,8)]; yuceyangbenjieguo=[data(2:2:119,9)]; %归一化处理 x1 = [guiyihuaceshiyangben,PS] = mapminmax(x1);%进行行列转换做 x2 = [guiyihuaceshiyangbenjieguo,PS] = mapminmax(x2);%进行行列转换做 x3 = [guiyihuayuceyangben,PS] = mapminmax(x3);%进行行列转换做 x4 = [guiyihuayuceyangbenjieguo,PS] = mapminmax(x4);%进行行列转换做 SamNum = 119; % 训练样本数 TestSamNum = 59; % 测试样本数 InDim = 8; % 样本输入维数 ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 SamIn = ceshiyangben'; SamOut = ceshiyangbenjieguo'; TestSamIn = yuceyangben'; TestSamOut = yuceyangbenjieguo'; %基于k均值的聚类方法确定数据中心 [Centers,class, obj_fcn,centers0] = hcm([SamIn; SamOut]',ClusterNum); Centers=Centers'; NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 while 1,27 第三章 基于 RBF 神经网络的水泥强度预测模型的建立NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 % 按最小距离原则对所有样本进行分类 for i = 1:SamNum AllDistance = dist(Centers',SamIn(:,i)); [MinDist,Pos] = min(AllDistance); NumberInClusters(Pos) = NumberInClusters(Pos) + 1; IndexInClusters(Pos,NumberInClusters(Pos)) = end % 保存旧的聚类中心 OldCenters = C for i = 1:ClusterNum Index = IndexInClusters(i,1:NumberInClusters(i)); Centers(:,i) = mean(SamIn(:,Index)')'; end % 判断新旧聚类中心是否一致,是则结束聚类 EqualNum = sum(sum(Centers==OldCenters)); if EqualNum == InDim*ClusterNum, break, end end % 计算各隐节点的扩展常数(宽度) AllDistances = dist(Centers',Centers); % 计算隐节点数据中心间的距离(矩阵) Maximum = max(max(AllDistances)); % 找出其中最大的一个距离 for i = 1:ClusterNum % 将对角线上的0 替换为较大的值 AllDistances(i,i) = Maximum+1; end Spreads = Overlap*min(AllDistances)'; % 以隐节点间的最小距离作为扩展常数 % 计算各隐节点的输出权值 Distance = dist(Centers',SamIn); % 计算各样本输入离各数据中心的距离 SpreadsMat = repmat(Spreads,1,SamNum); HiddenUnitOut = radbas(Distance./SpreadsMat); % 计算隐节点输出阵 HiddenUnitOutEx = [HiddenUnitOut' ones(SamNum,1)]'; % 考虑偏移 W2Ex = SamOut*pinv(HiddenUnitOutEx); % 求广义输出权值 W2 = W2Ex(:,1:ClusterNum); % 输出权值 B2 = W2Ex(:,ClusterNum+1); % 偏移 % 测试 TestDistance = dist(Centers',TestSamIn); TestSpreadsMat = repmat(Spreads,1,TestSamNum); TestHiddenUnitOut = radbas(TestDistance./TestSpreadsMat); TestNNOut = W2*TestHiddenUnitOut+B2; plot(1:TestSamNum,TestSamOut,'r-+',1:TestSamNum,TestNNOut,'b-o'); f=abs(TestSamOut-TestNNOut)./TestSamO plot(f);28 南京工业大学本科生毕业设计(论文)W2 B2 t2= t=t2-t1;未约简前的原始数据样本基于k均值聚类方法选取中心的建模:未约简前的预测值与实际值模型 63 Actual value Predictive value62预测样本值与实际样本值616059585756 0102030 输出样本个数405060图3-11 未约简前模型的预测值与实际值29 第三章 基于 RBF 神经网络的水泥强度预测模型的建立未约简前的样本预测值的相对误差百分数 0.060.05预测样本的相对误差0.040.030.020.0100102030 输出样本个数405060图 3-12 未约简前的误差百分数约简处理后建模所得模型:属性约简后的预测值与实际值模型 64 63 62 Actual value Predictive value预测样本值与实际样本值61 60 59 58 57 560102030 输出样本个数405060图 3-13 属性约简后模型的预测值与实际值30 南京工业大学本科生毕业设计(论文)属性约简后的样本预测值的相对误差百分数 0.09 0.08 0.07预测样本的相对误差0.06 0.05 0.04 0.03 0.02 0.01 00102030 输出样本个数405060图 3-14 属性约简后模型的误差百分数 表 3-4 两种聚类方法样本建模比较样本类型 K 均值聚类算 法 K 均值聚类算 法 随机选取样本 中心 随机选取样本 中心 未约简前的样 本 属性约简后的 样本 未约简前的样 本 属性约简后的 样本计算时间 0.5928s平均相对误差 1.59%偏移值 B 59.82590.7488s3.52%57.86410.65523.46%58.78160.96721.61%58.8649由上面的分析可知两者都可以对样本有一个很好的预测,但对比可知从样本数据中选 取数据中心算法较容易实现,且能够在权值学习过程中同时确定隐节点的数目,保证学习 误差不大于给定值,但数据中心从样本输入中选取是否合理,值得进一步讨论,并不能保 证所选样本都是合理的。 均值聚类方法的优点是可以确定 RBF 网络中的 h 个隐节点的数 K 据中心并根据各聚类中心之间的距离确定各隐节点的扩展常数,然后通过函数训练各隐节 点的输出权值。选用 K 均值聚类方法确定数据中心,能够很好的提高 RBF 的预测能力,31 第三章 基于 RBF 神经网络的水泥强度预测模型的建立同时 cpu 运行时间也较少。精度在属性约简后也有了一定的提高。故经比较可知改进后的 基于 K 均值的聚类方法确定数据中心可以更好地建立水泥强度预测的模型。3.4 结论从仿真结果也可以看出 RBF 模型能较好地预测实际值, 且能达到较高的精度。实践证 明通过建立 RBF 神经网络水泥强度预测模型进行水泥 28 天抗压强度值的预测是可行的, 通过 RBF 网络预测模型实现了水泥 28 天抗压强度值的快速准确预测。通过仿真实验可知 用 RBF 神经网络进行水泥 28d 抗压强度预测时还具有如下优点: (1)RBF 算法简明,收敛速度快,即使在恶劣的环境下也能进行精确的多变量逼近。 (2)在网络训练过程中由算法确定隐含层神经元的个数,不需要人为的介入。 (3)具有较高的预测能力。32 总结总结采用RBF 神经网络模型, 建立的水泥强度的预测模型为水泥强度的快速准确的预测提 供了一种全新的方法,通过仿真实验可知 RBF 预测模型的优越性和实用价值,并且有较 广泛的适用性和实用性。可以根据需要生产水泥的强度来控制生产工艺中的重要参数,使 效果达到最佳,减少了不必要的物力、人力的浪费,为生产控制系统提出了可行的实施方 案。建立水泥28d抗压强度模型对进一步预测水泥28d抗压强度具有指导意义。 在论文写作及实验过程中,遇到以下问题需要改进或完善,希望再以后学习过程中继 续努力: (1)在把握论文的整体框架上,走过一些弯路,最终在老师的指导和阅读了一定文 献的基础上思路变得清晰起来。 (2)在编程过程中,具体的处理情况调用的函数都是在老师的指导下,通过对函数 的了解渐渐熟悉的,然后不断的尝试,最终完成建模。 (3)在写论文时,对布局有大概的把握,具体的填充写初稿时有些概念还是不能准 确的了解。33 参考文献参考文献[1] 郭一军.基于人工神经网络的水泥强度预测模型研究[D].昆明:昆明理工大学,2006. [2] 程云虹,赵文. 基于 BP 网络的水泥强度预测[J],东北大学学报,2006. [3] 王欢,张增光,李海滨,刘彬.基于 RBF 神经网络的水泥强度预测[J].自动化与仪表,2004. [4] 乔俊飞,韩红桂. RBF 神经网络的结构动态优化设计[J].自动化学报, 2010. [5] 王阳萍 ,朱正平. MATLAB 在 RBF 径向基神经网络仿真中的应用[J]. 甘肃科技,2004. [6] 杨旭华.神经网络及其在控制中的应用研究[D]. 上海:中国科学院上海冶金研究所, 材料物理与化学, 2000. [7] 郭一军, 段杏林.基于 RBF 神经网络水泥强度预测模型的研究[J].自动化与仪表,2009. [8] 孙朝云.基于人工神经网络的预测模型[J].福建电脑,2011. [9] 周勇.基于非线性主成分神经网络的水泥强度预测研究[D].江西:景德镇陶瓷学院,2010. [10] 卢继高. 基于 MATLAB 神经网络的水泥熟料强度预测[J]. 计量与控制,2007. [11] 徐辉, 夏虹.水泥强度的模糊预测模型研究[J]. 工科数学,2000. [12] 王旭东,邵惠鹤. RBF 神经网络理论及其在控制中的应用[J]. 信息与控制, 1997. [13] 郁时炼,高辉.基于神经网络的水泥强度预测[J].合肥工业大学学报,2002. [14] 张顶学,刘新芝,关治洪.RBF 神经网络算法及其应用[J].石油化工高等学校学报,2007. [15] 王炜,吴耿锋,张博锋,王媛. 径向基函数( RBF) 神经网络及其应用[J]. 地震,2005. [16] 王欢. 水泥管理信息系统与水泥强度预测的研究[D].武汉:燕山大学, 2003. [17] 夏春艳,李树平,刘世勇.基于粗糙集的属性约简算法[J]. 计算机科学与技术. 2008 [18] 何迎生,段明秀. 基于改进kmeans 聚类方法的RBF 神经网络设计[J]. 邵阳学院学报 2008. [19] 朱明星, 张德龙. RBF 网络基函数中心选取算法的研究[J]. 安徽大学学报,2000. [20] 李业丽, 秦臻. 一种改进的k- means 算法[J]. 北京印刷学院学报.2007. [21] 雷升锴. 动态K-均值聚类算法在RBF神经网络中心选取中的应用[J]. 技术应用.2011. [22] 高宁,张建中. MATLAB在RBF神经网络模型中的应用[J]. 农业网络信息,2009. [23] 沈民奋,李延勋. 归一化RBF网络的时空混沌时间序列建模与应用[J]. 电子测量与仪器学报,2009. [24] 周 勇,胡中功. RBF 神经网络理论及其在控制中的应用[J]. 武汉科技学院学报,2007. [25] 郭兰平. 基于改进RBF神经网络对股价的演变预测[J].交通大学学报,2010. [26] 胡清华. 基于邻域粒化和粗糙逼近的数值属性约简[J]. 哈尔滨软件学报,2008.34 南京工业大学本科生毕业设计(论文)[27] 叶东毅. Jelonek 属性约简算法的一个改进[J]. 电子学报,2000. [28] 高侯,媛彬. 改进贪心算法的完善与应用[J]. 仪器仪表学报,2004. [29] 杨超. 基于贪心策略自动生成高区分度试卷的方法[J]. 五邑大学学报,2011. [30] 姚明臣, 孟凡超. 属性约简的一种贪心算法[J]. 佳木斯大学学报,2003. [31] 杨冠军,谢永芳,桂卫华. 一种基于属性重要度的约简算法[J]. 重庆科技学院学报,2008. [32] 张义超, 卢英, 李炜. RBF 网络隐含层节点的优化[J]. 计算机技术与发展,2009. [33] 林万洪, 薛亮. RBF网络做函数逼近的改进研究[J]. 装备指挥技术学院学报,2006. [34] 熊英. 基于R B F 网络的几种学习算法[J]. 信息技术,2011. [35] 胡军胜. 中心_焦点判别的三个方法[J]. 湛江师范学院学报( 自然科学版),2000. [36] Tsau Young (T. Y.) Lin. Granular Computing, Computer Security and Web Intelligence[J]. computer society,2006. [37] Hu Qing hua Neighborhood rough set based heterogeneous feature subset selection[J]. Information Sciences,2008.35 致 谢致 谢经过一学期的努力,我终于完成了我的毕业论文《基于 RBF 神经网络的水泥强度预测 模型》 。在本论文即将付印并提交答辩之际,我衷心感谢在本人写作论文期间给予我指导, 帮助的各位老师、同学和朋友: 本文是在王莉老师的指导下完成的,从论文的选题、研究、撰写到顺利完成,王莉老 师都给予我悉心的指导和谆谆的教诲。在此表示诚挚的谢意。在完成论文期间,王老师不 厌其烦的讲解指点,提醒帮助,严谨规范的学术态度才使本论文可以完成。并且,在整个 实验过程中,王老师教会了我很多很多。老师在学习上的学风,在做人做事上的作风,都 令我感动,也是我应该尽量看齐的楷模。这是我四年大学中难忘的一段时光,也带给了我 一生受用的财富。 同时,本组同学对我的实验以及本论文的撰写也提出了很多宝贵的意见和建议,在此 表示谢意。 对所援引的著作、论文作者在此一并致以感谢。 还要向审阅和评议论文的各位专家学者表示由衷的感谢和敬意。 感谢我的家人给我的所有帮助! 最后并祝大家工作、学习愉快!36 南京工业大学本科生毕业设计(论文)附录本实验中的程序:离散化程序: load shuini28dkyqd.load data.mat B=[]; [N1,N2]=size(data); for idy=1:N2; a=data(:,idy) %原始数据 k=3; %离散区间为3; [center,U,obj_fcn]=fcm(a(:,1),k); %将数据进行模糊C-均值聚类,n为数据untitled的列数, n=1,2,3,4,center为迭代后的聚类中心,U为所 有数据点对聚类中心的隶属度函数矩阵,obj_fcn为目标函数值; c1=sort(center); %将得到的聚类中心排序; newU=[]; %生成一个新的隶属度矩阵newU;按照聚类中心的排序重新排序; for idx=1:k; a1=find(center==c1(idx)); newU1=U(a1,:); newU=[newU;newU1 ]; [a,b]=max(newU); % b 是离散化所得的结果,b’为将b转置后的结果 b=b' ; % b'为将b转置后的结果 B=[B b]; 归一化程序: load guiyihuachulishuju.mat x1 =guiyihuachulishuju [y1,PS] = mapminmax(x1)%进行行列转换做 K 均值程序: function [centers,class, obj_fcn,centers0] = hcm(dataclass, k) if nargin ~= 2 , error('Too many or too few input arguments!'); end [objects,attributes] = size(dataclass); data=dataclass(:,1:(attributes-1)); %%%% 第一步,随机选择K个对象,作为初始簇的中心 %%%%初始化考虑两个情况:1.重复选择同一个数据作为聚类中心;2.选择数据时,hotinit中出现0,即 会选择第0个数据; id=0; while id==0; centers=zeros(k,attributes-1);37 附录hotinit=round(rand(k,1)*10); id=1; if length(find(hotinit==0))~=0||length(unique(hotinit))~=k; id=0; centers=data(hotinit,:); centers0= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%% % Change the following to set default options options = [1; % exponent for the partition matrix U 100; % max. number of iteration 1e-5; % min. amount of improvement 1]; % info display during iteration expo = options(1); % Exponent for U max_iter = options(2); % Max. iteration min_impro = options(3); % Min. improvement display = options(4); % Display info or not obj_fcn=[]; % Main loop for i = 1:max_iter, dist = distfcm1(centers, data); % fill the distance matrix [m,n]=min(dist); obj_fcn1=sum(m.^2); obj_fcn=[obj_fcn obj_fcn1]; %%%%%%%%计算新的聚类中心 for idx=1:k; index=find(n==idx); centers(idx,:)=sum(data(index,:))/length(index); %%%%%%%%%%%%%%%%%%%%%%%%%%%% if display, fprintf('Iteration count = %d, obj. fcn = %f\n', i, obj_fcn(i)); end if i & 1, if abs(obj_fcn(i) - obj_fcn(i-1)) & min_impro, end, end % check termination condition end iter_n = % Actual number of iterations38 南京工业大学本科生毕业设计(论文)class=n'; (distfcm1.m)离散程序 function out = distfcm1(center, data) %DISTFCM Distance measure in fuzzy c-mean clustering. % OUT = DISTFCM(CENTER, DATA) calculates the Euclidean distance % between each row in CENTER and each row in DATA, and returns a % distance matrix OUT of size M by N, where M and N are row % dimensions of CENTER and DATA, respectively, and OUT(I, J) is % the distance between CENTER(I,:) and DATA(J,:). % out = zeros(size(center, 1), size(data, 1)); % fill the output matrix if size(center, 2) & 1, for k = 1:size(center, 1), out(k, :) = sqrt(sum(((data-ones(size(data, 1), 1)*center(k, :)).^2)')); end else % 1-D data for k = 1:size(center, 1), out(k, :) = abs(center(k)-data)'; end end (hcm)基于K均值求数据中心的newrb函数模型程序: t1= load data.%约简后的总体样本 ceshiyangben=[data(1:2:238,1),data(1:2:238,2),data(1:2:238,3),data(1:2:238,4),data(1:2:238,5),data(1:2:238,6) ,data(1:2:238,7),data(1:2:238,8)]; ceshiyangbenjieguo=[data(1:2:238,9)]; yuceyangben=[data(2:2:238,1),data(2:2:238,2),data(2:2:238,3),data(2:2:238,4),data(2:2:238,5),data(2:2:238,6), data(2:2:238,7),data(2:2:238,8)]; yuceyangbenjieguo=[data(2:2:238,9)]; %归一化处理 x1 = [guiyihuaceshiyangben,PS] = mapminmax(x1);%进行行列转换做 x2 = [guiyihuaceshiyangbenjieguo,PS] = mapminmax(x2);%进行行列转换做 x3 =39 附录[guiyihuayuceyangben,PS] = mapminmax(x3);%进行行列转换做 x4 = [guiyihuayuceyangbenjieguo,PS] = mapminmax(x4);%进行行列转换做 SamNum = 119; % 训练样本数 TestSamNum = 119; % 测试样本数 InDim = 8; % 样本输入维数 ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 SamIn = ceshiyangben'; SamOut = ceshiyangbenjieguo'; TestSamIn = yuceyangben'; TestSamOut = yuceyangbenjieguo'; %基于粗k均值的聚类方法确定数据中心 [Centers,class, obj_fcn,centers0] = hcm([SamIn; SamOut]',ClusterNum); Centers=Centers'; NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 while 1, NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 % 按最小距离原则对所有样本进行分类 for i = 1:SamNum AllDistance = dist(Centers',SamIn(:,i)); [MinDist,Pos] = min(AllDistance); NumberInClusters(Pos) = NumberInClusters(Pos) + 1; IndexInClusters(Pos,NumberInClusters(Pos)) = end % 保存旧的聚类中心 OldCenters = C for i = 1:ClusterNum Index = IndexInClusters(i,1:NumberInClusters(i)); Centers(:,i) = mean(SamIn(:,Index)')'; end % 判断新旧聚类中心是否一致,是则结束聚类 EqualNum = sum(sum(Centers==OldCenters)); if EqualNum == InDim*ClusterNum, break, end end % 计算各隐节点的扩展常数(宽度) AllDistances = dist(Centers',Centers); % 计算隐节点数据中心间的距离(矩阵)40 南京工业大学本科生毕业设计(论文)Maximum = max(max(AllDistances)); % 找出其中最大的一个距离 for i = 1:ClusterNum % 将对角线上的0 替换为较大的值 AllDistances(i,i) = Maximum+1; end Spreads = Overlap*min(AllDistances)'; % 以隐节点间的最小距离作为扩展常数 % 计算各隐节点的输出权值 Distance = dist(Centers',SamIn); % 计算各样本输入离各数据中心的距离 SpreadsMat = repmat(Spreads,1,SamNum); HiddenUnitOut = radbas(Distance./SpreadsMat); % 计算隐节点输出阵 HiddenUnitOutEx = [HiddenUnitOut' ones(SamNum,1)]'; % 考虑偏移 W2Ex = SamOut*pinv(HiddenUnitOutEx); % 求广义输出权值 W2 = W2Ex(:,1:ClusterNum); % 输出权值 B2 = W2Ex(:,ClusterNum+1); % 偏移 % 测试 TestDistance = dist(Centers',TestSamIn); TestSpreadsMat = repmat(Spreads,1,TestSamNum); TestHiddenUnitOut = radbas(TestDistance./TestSpreadsMat); TestNNOut = W2*TestHiddenUnitOut+B2; plot(1:TestSamNum,TestSamOut,'r-+',1:TestSamNum,TestNNOut,'b-o'); f=abs(TestSamOut-TestNNOut)./TestSamO plot(f); W2 B2 t2= t=t2-t1;随机选取样本中心函数: t1= load data.%约简后的总体样本 ceshiyangben=[data(1:2:238,1),data(1:2:238,2),data(1:2:238,3),data(1:2:238,4),data(1:2:238,5) ,data(1:2:238,6),data(1:2:238,7),data(1:2:238,8)]; ceshiyangbenjieguo=[data(1:2:238,9)]; yuceyangben=[data(2:2:119,1),data(2:2:119,2),data(2:2:119,3),data(2:2:119,4),data(2:2:119,5), data(2:2:119,6),data(2:2:119,7),data(2:2:119,8)]; yuceyangbenjieguo=[data(2:2:119,9)];41 附录%归一化处理 x1 = [guiyihuaceshiyangben,PS] = mapminmax(x1);%进行行列转换做 x2 = [guiyihuaceshiyangbenjieguo,PS] = mapminmax(x2);%进行行列转换做 x3 = [guiyihuayuceyangben,PS] = mapminmax(x3);%进行行列转换做 x4 = [guiyihuayuceyangbenjieguo,PS] = mapminmax(x4);%进行行列转换做 SamNum = 119; % 训练样本数 TestSamNum = 59; % 测试样本数 InDim = 8; % 样本输入维数 ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 SamIn = ceshiyangben'; SamOut = ceshiyangbenjieguo'; TestSamIn = yuceyangben'; TestSamOut = yuceyangbenjieguo'; Centers = SamIn(:,1:ClusterNum);%所有行的前十个作为聚类中心% 计算各隐节点的扩展常数(宽度) AllDistances = dist(Centers',Centers); % 计算隐节点数据中心间的距离(矩阵) Maximum = max(max(AllDistances)); % 找出其中最大的一个距离 for i = 1:ClusterNum % 将对角线上的0 替换为较大的值 AllDistances(i,i) = Maximum+1; end Spreads = Overlap*min(AllDistances)'; % 以隐节点间的最小距离作为扩展常数 % 计算各隐节点的输出权值 Distance = dist(Centers',SamIn); % 计算各样本输入离各数据中心的距离 SpreadsMat = repmat(Spreads,1,SamNum); HiddenUnitOut = radbas(Distance./SpreadsMat); % 计算隐节点输出阵 HiddenUnitOutEx = [HiddenUnitOut' ones(SamNum,1)]'; % 考虑偏移 W2Ex = SamOut*pinv(HiddenUnitOutEx); % 求广义输出权值 W2 = W2Ex(:,1:ClusterNum); % 输出权值 B2 = W2Ex(:,ClusterNum+1); % 偏移 % 测试 TestDistance = dist(Centers',TestSamIn); TestSpreadsMat = repmat(Spreads,1,TestSamNum); TestHiddenUnitOut = radbas(TestDistance./TestSpreadsMat); TestNNOut = W2*TestHiddenUnitOut+B2; plot(1:TestSamNum,TestSamOut,'r-+',1:TestSamNum,TestNNOut,'b-o');42 南京工业大学本科生毕业设计(论文)title('属性约简后的预测值与实际值模型'); xlabel('输出样本个数'); ylabel('预测样本值与实际样本值'); f=abs(TestSamOut-TestNNOut)./TestSamO plot(f); title('属性约简后的样本预测值的相对误差百分数'); xlabel('输出样本个数'); ylabel('预测样本的相对误差'); W2 B2 t2= t=t2-t1 average1=abs(sum((TestNNOut-(sum(TestSamOut)./59))./TestSamOut))./59%平均相对误差绝对值43
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 神经网络拟合任意函数 的文章

 

随机推荐