基于RBF神经网络的水泥强度预测模型.ppt_第1页
基于RBF神经网络的水泥强度预测模型.ppt_第2页
基于RBF神经网络的水泥强度预测模型.ppt_第3页
基于RBF神经网络的水泥强度预测模型.ppt_第4页
基于RBF神经网络的水泥强度预测模型.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、题目:基于RBF神经网络的水泥强度预测模型,学生: 学号: 指导老师:,1.研究内容,首先收集水泥的一些属性,测定不同属性的参数。然后根据RBF神经网络的进行建模,预测水泥强度参数,判定是否合格。最后验证所得到的预测模型是否可以实际应用。(一般会收集对水泥28d抗压强度有影响的属性,因为水泥的抗压强度在28d左右会定型,如果满足28d抗压强度值将可以进行实际应用),2.方法及步骤,1.将收集到的与水泥28d强度相关的原始数据(水泥的属性包括:loss,sio2 ,比表面积,一天抗压强度等)进行整理制成excel表格,便于软件处理。 2.用MATLAB软件中的FCM函数进行离散化处理(原始数据不

2、便于直接进行属性约简需先进行离散化)。 3.利用Rosetta函数中的johnsons algorithm进行属性约简,提取出对水泥28d抗压强度有影响的主要因素。 4.利用MATLAB中的RBF神经网络建模,得出预测模型,并比较此模型的实际误差,3过程及实现,(1)fcm离散化程序: load shuini28dkyqd.mat;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为

3、数据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 ; end; a,b=max(newU); % b 是离散化所得的结果,b为将b转置后的结果 b=b ; % b为将b转置后的结果 B=B b; end; 得出结果为离散化

4、好的数据,(2)用Rosetta软件属性约简,得出的主要因素为表1-1,(3)八个主要因素,(4)RBF网络建模: RBF网络结构和工作原理:(径向基函数网络的拓扑结构),由图对应的公式为: 表示输出层第k个节点的输出。 表示输出层第k个节点的阈值 为径向基函数 表示第j个隐层节点连接到输出层第k个节点的权值 隐层函数一般采用高斯函数确定:对于高斯函数,其中x是n 维输入向量; 是第i个函数的 中心; 是第i个感知的变量(可以自由选择的参数),它决定了该基函数围绕中心点的宽度,由高斯函数可知只要确定隐节点的数据中心,高斯 函数的值就可以确定,而隐节点的数据中心确定后 隐节点的扩展常数就可以根据

5、公式算出,最后各隐 节点的数据中心和扩展常数确定,输出权值就可以 通过训练得到。具体步骤如下: 1)算法初始化:选择h个不同的初始聚类中心,比如,从样本输 入中随机选取,或者选择前h个样本输入,但这h个初始数据中心必 须取不同值。 2)计算所有样本输入与聚类中心的距离,3)对样本输入 ,按最小距离原则对其进行分类: 即当 时, 即 被当归为第i类,即。 4)重新计算各类的新的聚类中心:,5)如果 转到步骤(2),否则聚类结束,转到步骤(6)。,6)根据各聚类中心之间的距离确定个隐节点的扩 展常数。隐节点的扩展常数取 ,其中 为第 i 个数据中心与其他最近的数据中心之间 的距离,即 di= ,k

6、称 重叠系数。,一旦各隐节点的数据中心和扩展常数确定了,输出权值 就可以通过训练得到,最后就可以建立RBF网络了,建模: 本文用了两种建模方法: 1)数据中心从样本输入中选取(随机选取中心) 2)数据中心动态调节方法(k均值聚类方法),随机选取数据中心程序如下:,clc; clear all; t1=cputime; load data.mat;%约简后的总体样本 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:

7、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 =ceshiyangben; guiyihuaceshiyangben,PS = mapminmax(x

8、1);%进行行列转换做 x2 =ceshiyangbenjieguo; guiyihuaceshiyangbenjieguo,PS = mapminmax(x2);%进行行列转换做 x3 =yuceyangben; guiyihuayuceyangben,PS = mapminmax(x3);%进行行列转换做 x4 =yuceyangbenjieguo; guiyihuayuceyangbenjieguo,PS = mapminmax(x4);%进行行列转换做 SamNum = 119; % 训练样本数 TestSamNum = 59; % 测试样本数 InDim = 8; % 样本输入维数

9、ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 SamIn = ceshiyangben; SamOut = ceshiyangbenjieguo; TestSamIn = yuceyangben; TestSamOut = yuceyangbenjieguo; Centers = SamIn(:,1:ClusterNum);%所有行的前十个作为聚类中心,% 计算各隐节点的扩展常数(宽度) AllDistances = dist(Centers,Centers); % 计算隐节点数据中心间的距离(

10、矩阵) 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 =

11、 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)

12、; TestHiddenUnitOut = radbas(TestDistance./TestSpreadsMat); TestNNOut = W2*TestHiddenUnitOut+B2; plot(1:TestSamNum,TestSamOut,r-+,1:TestSamNum,TestNNOut,b-o); title(属性约简后的预测值与实际值模型); xlabel(输出样本个数); ylabel(预测样本值与实际样本值); figure; f=abs(TestSamOut-TestNNOut)./TestSamOut; plot(f); title(属性约简后的样本预测值的相对误差

13、百分数); xlabel(输出样本个数); ylabel(预测样本的相对误差); W2 B2 average1=abs(sum(TestNNOut-(sum(TestSamOut)./59)./TestSamOut)./59%平均相对误差绝对值,约简处理后建模所得模型图像,基于k均值聚类方法的程序如下:,clc; clear all; clc; t1=cputime; load data.mat;%约简后的总体样本 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,

14、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 =ceshiyangben; guiyihuaces

15、hiyangben,PS = mapminmax(x1);%进行行列转换做 x2 =ceshiyangbenjieguo; guiyihuaceshiyangbenjieguo,PS = mapminmax(x2);%进行行列转换做 x3 =yuceyangben; guiyihuayuceyangben,PS = mapminmax(x3);%进行行列转换做 x4 =yuceyangbenjieguo; guiyihuayuceyangbenjieguo,PS = mapminmax(x4);%进行行列转换做 SamNum = 119; % 训练样本数 TestSamNum = 59; %

16、测试样本数 InDim = 8; % 样本输入维数 ClusterNum = 10; % 隐节点数,即聚类样本数 Overlap = 1.0; % 隐节点重叠系数 % 根据目标函数获得样本输入输出 SamIn = ceshiyangben; SamOut = ceshiyangbenjieguo; TestSamIn = yuceyangben; TestSamOut = yuceyangbenjieguo; 数据中心 Centers,class, obj_fcn,centers0 = hcm(SamIn; SamOut,ClusterNum); Centers=Centers; Number

17、InClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号 while 1, NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零 IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号,%基于k均值的聚类方法确定% 按最小距离原则对所有样本进行分类 for i = 1:SamNum AllDistance = dist(Cen

18、ters,SamIn(:,i); MinDist,Pos = min(AllDistance); NumberInClusters(Pos) = NumberInClusters(Pos) + 1; IndexInClusters(Pos,NumberInClusters(Pos) = i; end % 保存旧的聚类中心 OldCenters = Centers; for i = 1:ClusterNum Index = IndexInClusters(i,1:NumberInClusters(i); Centers(:,i) = mean(SamIn(:,Index); end % 判断新旧

19、聚类中心是否一致,是则结束聚类 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

20、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(HiddenUni

21、tOutEx); % 求广义输出权值 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

温馨提示

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

评论

0/150

提交评论