python模糊神经网络预测_MATLAB模糊神经网络的预测算法--预测水质
一、模糊理論
在集合論中,一個對象要么屬于要么不屬于一個集合,僅僅表示的是“非 此即彼”的觀念。但是在現實生活中,“亦此亦彼”和不確定的現象比比皆是,比如:溫水和熱水,物理學中速度的快慢,天氣的好與壞,年輕與年老。這些概念處于過渡狀態中,相互融合,彼此之間的分界線不清晰,因此很難用精確的尺度來進行劃分。這種現象就被稱為是模糊現象,對于模糊概念,經典的數學理論是無法解決的。
二、模糊神經網絡的優點
模糊系統和神經網絡在處理對象、數據的確定性等方面都存在著差異, 神經網絡具有自學習的能力、并行處理能力強,但不能處理模糊的知識,因此不能很好利用專家的經驗。而模糊系統善于處理不確定的信息,但在數據處理時推理速度慢、精度較低,很難實現自適應學習。 如果能夠將兩者有機的結合在一起,便能大大發揮各自的優勢并彌補不足。將模糊化的數據輸入到神經網絡中,通過神經網絡的學習能力提取模糊規則,使得模糊系統具備了泛化能力。使得模型不僅能夠處理精確化的信息,同時也能處理模糊信息,豐富了神經網絡與模糊系統的運用。
三、程序
1、 網絡訓練
%循環開始,進化網絡
for iii=1:maxgen
iii
for k=1:m
x=inputn(:,k);
%輸出層結算
for i=1:I
for j=1:M
u(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));
end
end
%模糊規則計算
for i=1:M
w(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);
end
addw=sum(w);
for i=1:M
yi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6);
end
addyw=yi*w';
%網絡預測計算
yn(k)=addyw/addw;
e(k)=outputn(k)-yn(k);
%計算p的變化值
d_p=zeros(M,1);
d_p=xite*e(k)*w./addw;
d_p=d_p';
%計算b變化值
d_b=0*b_1;
for i=1:M
for j=1:I
d_b(i,j)=xite*e(k)*(yi(i)*addw-addyw)*(x(j)-c(i,j))^2*w(i)/(b(i,j)^2*addw^2);
end
end
%更新c變化值
for i=1:M
for j=1:I
d_c(i,j)=xite*e(k)*(yi(i)*addw-addyw)*2*(x(j)-c(i,j))*w(i)/(b(i,j)*addw^2);
end
end
p0=p0_1+ d_p+alfa*(p0_1-p0_2);
p1=p1_1+ d_p*x(1)+alfa*(p1_1-p1_2);
p2=p2_1+ d_p*x(2)+alfa*(p2_1-p2_2);
p3=p3_1+ d_p*x(3)+alfa*(p3_1-p3_2);
p4=p4_1+ d_p*x(4)+alfa*(p4_1-p4_2);
p5=p5_1+ d_p*x(5)+alfa*(p5_1-p5_2);
p6=p6_1+ d_p*x(6)+alfa*(p6_1-p6_2);
b=b_1+d_b+alfa*(b_1-b_2);
c=c_1+d_c+alfa*(c_1-c_2);
p0_2=p0_1;p0_1=p0;
p1_2=p1_1;p1_1=p1;
p2_2=p2_1;p2_1=p2;
p3_2=p3_1;p3_1=p3;
p4_2=p4_1;p4_1=p4;
p5_2=p5_1;p5_1=p5;
p6_2=p6_1;p6_1=p6;
c_2=c_1;c_1=c;
b_2=b_1;b_1=b;
end
2、網絡預測
%數據歸一化
inputn_test=mapminmax('apply',input_test,inputps);
[n,m]=size(inputn_test)
for k=1:m
x=inputn_test(:,k);
%計算輸出中間層
for i=1:I
for j=1:M
u(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));
end
end
for i=1:M
w(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);
end
addw=0;
for i=1:M
addw=addw+w(i);
end
for i=1:M
yi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6);
end
addyw=0;
for i=1:M
addyw=addyw+yi(i)*w(i);
end
%計算輸出
yc(k)=addyw/addw;
end
四、結果展示
總結
以上是生活随笔為你收集整理的python模糊神经网络预测_MATLAB模糊神经网络的预测算法--预测水质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自学编程推荐的11个学习及刷题网站
- 下一篇: 用Java编写日历表(3种方式)