阿森纳vs南安普顿比分vs阿森纳怎么预 测结果

小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
RBF神经网络,训练完成后,预测结果误差太大了,怎么回事呢???
初学RBF,下面的程序训练没问题,但是预测结果就差很远了,希望专家解答,谢谢~~蓝色字体是存在一些疑问,希望有人能回答一下
代码如下:
%RBF法建模
%标准化的建模数据集
p=data(1:100,1:5);
t=data(1:100,6);
p_test=data(101:123,1:5);
t_test=data(101:123,6);
p_test=p_test';
t_test=t_test';
%—————————初始化———————————————
SamNum =Q; % 总样本数
InDim = 1; % 样本输入维数,输入维数设置有什么要求吗?
ClusterNum = 5; % 隐节点数,即聚类样本数
Overlap = 1; % 隐节点重叠系数
%选择初始聚类中心
Centers = p(:,1:ClusterNum);
NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零
IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号
NumberInClusters = zeros(ClusterNum,1); % 各类中的样本数,初始化为零
IndexInClusters = zeros(ClusterNum,SamNum); % 各类所含样本的索引号
% 按最小距离原则对所有样本进行分类
for i = 1:SamNum
%计算所有样本输入与聚类中心的距离
AllDistance = dist(Centers',p(:,i));
%按对小距离原则对样本进行分类
= min(AllDistance);
NumberInClusters(Pos) = NumberInClusters(Pos) + 1;
IndexInClusters(Pos,NumberInClusters(Pos)) =
% 保存旧的聚类中心
OldCenters = C
%重新计算各类新的聚类中心
for i = 1:ClusterNum
Index = IndexInClusters(i,1:NumberInClusters(i));
Centers(:,i) = mean(p(:,Index)')';
% 判断新旧聚类中心是否一致,是则结束聚类
EqualNum = sum(sum(Centers==OldCenters));
if EqualNum == InDim*ClusterNum,
% 根据各聚类中心之间的距离确定各隐节点的扩展常数(宽度)
AllDistances = dist(Centers',Centers); % 计算隐节点数据中心间的距离(矩阵)
Maximum = max(max(AllDistances)); % 找出其中最大的一个距离
for i = 1:ClusterNum % 将对角线上的0 替换为较大的值
AllDistances(i,i) = Maximum+1;
spread = Overlap*min(min(AllDistances)') % 以隐节点间的最小距离作为扩展常数
%spread = Overlap*min(AllDistances)' % 以隐节点间的最小距离作为扩展常数
%spread有问题
%使用min(min()),不用双min的话,spread是一个矩阵,不是一个数字,怎么解决???%---------------------------------------------------
% 训练与测试
net = newrbe(p,t,spread);
a = sim(net,p)& && && && && && && && && &% 测试 - 输出为预测值
err1 = sum((t-a).^2)& && && && && && && &% 训练误差的平方和
%---------------------------------------------------
% 结果作图
%subplot(1,2,1);
plot(t,'r+:')
plot(a,'bo:')
title('+为真实值,o为预测值')
title('RBF网络拟合曲线图--训练');
legend('实际值','估计值');
ylabel('样本输出');
xlabel('输入样本点');
b=sim(net,p_test)
err2=sum((t_test-b).^2)& & % 训练误差的平方和
%subplot(1,2,2);
plot(t_test,'r+:')
plot(b,'bo:')
title('+为真实值,o为预测值')
title('RBF网络拟合曲线图--测试');
legend('实际值','估计值');
ylabel('样本输出');
xlabel('输入样本点');
结果截图:
测试结果图:
5个输入节点的话,隐节点数最多就是5个吧,再多了就会出错,你上面说的选择什么算法啊?
我还想问下,这里用matlab自带工具箱newrbe(),不需要修改net=network()里面的参数吗??我看network里面第一个参数输入节点数是1啊
我看了一下,测试误差很大是因为前面K均值聚类法得到的spread值太大了,导致预测误差很大,这是怎么回事呢??谢谢你解答一下啊
关于异常数据的标准,实际中常使用的一种标准是:与平均值的偏差大于3倍标准差。Data=data(abs(data-mean(data))
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-
浏览器进程
打开微信扫一扫
随时随地聊科研相关热词搜索:
延伸阅读:
最新招商项目展
[招商加盟]
[融资投资]
[融资投资]
[老板看市场]
[融资投资]
[融资投资]
[融资投资]
[招商加盟]
[小本创业]
[创业百味]
频道总排行

我要回帖

更多关于 阿森纳0 2南安普顿 的文章

 

随机推荐