dager 发表于 2006-9-24 11:01

求助:(神经网络)不同归一化对精度的影响的原因?

如以下程序,采用归一化函数premnmx和简单的归一化运算会产生不同的精度,此例中归一化函数的精度比较好。但是对其它的一些数据简单的归一化运算比较好,有哪位高手可以指点一下针对不同的数据如何判断采用哪种归一化较优?感谢呀!!
clc
close all
clear
echo on
p=[93.0, 5, 3, 4.5, 89, 98.0, 98.0, 13, 98;
    84.0, 2.1, 1.8, 7.5, 300, 97.0, 96.0, 42, 95;
    90.6, 2.7, 1.3, 10, 640, 95.0, 90.0, 25, 95;
    90.5, 1.75, 1.78, 11, 21, 95.0, 95.0, 15, 95;
    90.0, 2.5, 2.0, 8.0, 150, 97.0, 98.5, 35, 97;
    88.0, 2.9, 1.78, 5.6, 80, 95.0, 95.0, 15, 97;
    88.0, 3.0, 1.79, 5.8, 128, 97.0, 97.5, 16, 97;
    86.0, 1.5, 1.0, 11.2, 529, 94.0, 92.0, 34, 94;
    85.1, 2.9, 1.9, 12, 30, 96.0, 96.0, 10, 96;
    85.0, 2.6, 1.6, 6.0, 149, 96.5, 96.5, 18, 96
   ]';
t=;
%对原始数据进行归一化
P=premnmx(p)
T=premnmx(t)
% i=1:9
    %P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
%end
%T(1,:)=(t(1,:)-min(t))/(max(t)-min(t));
P1=;
T1=;
%建立网络
spread=1;
goal=0.001;
net=newrb(P1,T1,goal,spread,8,1);
%反归一化,并做学习误差图
a=sim(net,P1)
b=postmnmx(a,min(t),max(t))
%b=a*(max(t)-min(t))+min(t)
figure
plot(1:8,b-t(1:8),'bo-')
grid on
xlabel('样本数')
ylabel('学习误差')
%将测试样本代入网络
Y=sim(net,P(:,9:10))
y2=postmnmx(Y,min(t),max(t))
%y2=Y*(max(t)-min(t))+min(t)
y3=(y2-t(9:10))./t(9:10)
hold on
plot(9:10,y3,'bo-')
hold off
echo off
页: [1]
查看完整版本: 求助:(神经网络)不同归一化对精度的影响的原因?