📄 improvedran.asv
字号:
2618.45
2624.41
2661.36
2663.99
2652.30
2661.84
2673.52
2655.40
2664.23
2636.81
2649.21
2612.25
2643.01
2624.89
2624.65
2615.59
2634.18
2658.27
2652.30
2649.44
2649.44
2661.60
2649.21
2658.50
2661.36
2649.21
2686.16
2686.16
2637.05
2683.06
2646.34
2679.96
2707.62
2373.35
2343.07
2360.95
2339.49
2288.23
2222.91
2250.80
2235.30
2281.80
2257.00
2241.50
2235.78
2385.75
2379.79
2391.71
2355.23
2348.79
2315.18
2364.05
2342.83
2351.89
2339.97
2312.31
2330.91
2305.88
2330.67
2327.57
2333.53
2361.19
2367.15
2376.69
2367.15
2364.29
2379.31
2394.81
2385.99
2391.95
2401.01
2416.74
2416.50
2440.82
2449.88
2465.38
2477.78
2459.42
2480.64
2471.82
2489.94
2489.94
2508.54
2539.05
2511.64
2499.00
2502.10
2550.98
2516.88
2495.42
2501.62
2452.98
2449.17
2428.43
2409.59
2415.79
2440.59
2418.89
2434.63
2465.14
2440.59
2421.99
2382.65
2394.81
2370.01
2394.81
2379.55
2361.19
2354.75
2348.79
2293.72
2305.88
2330.43
2360.95
2367.15
2366.91
2394.81
2404.11
2456.32
2428.43
2428.66
2670.66
2670.66
2624.65
2624.65
2539.05
2538.82
2551.21
2581.73
2560.04
2551.21
2502.10
2508.06
2495.90
2504.96
2514.50
2520.70
2520.70
2502.10
2514.50
2495.90
2538.82
2508.30
2501.86
2474.44
2425.56
2388.61
2413.41
2398.15
2379.79
2351.89
2343.07
2318.28
2318.28
2312.08
2391.95
2391.71
2376.69
2345.93
2349.03
2330.91
2315.18
2312.31
2290.86
2354.99
2413.41
2407.21
2391.71
2407.21
2401.01
2379.79
2343.07
2343.07
2343.07
2324.47
2330.43
2305.88
2318.28
2287.76
2303.02
2336.63
2324.71
2297.06
2318.04
2300.16
2293.96
2297.06
2284.66
2287.76
2293.96
2290.86
2293.72
2281.32
2254.14
2275.36
2281.80
2275.36
2278.94
2303.02
2263.20
2266.06
2223.62
2232.44
2257.24
2241.74
2257.24
2281.56
2260.10
2266.06
2284.42
2305.88
2308.98
2312.08
2318.04
2330.43
2305.88
2388.85
2398.15
2452.98
2440.82
2465.14
2514.26
]';
[pn,meanp,stdp,tn,meant,stdt]=prestd(p,t); %生成均值为0,方差为一的矩阵
[ptrans,transMat] = prepca(pn,0.01) ;%需调整的参数-2;主元分析
Tn=(t-min(t))/(max(t)-min(t));
[s,l]=size(ptrans);
ptrans=(ptrans-repmat(min(ptrans')',1,l))./repmat(max(ptrans')'-min(ptrans')',1,l); % 矩阵归一化
p1=ptrans(:,1:300);
p2=ptrans(:,301:396);
t1=Tn(:,1:300);
t2=Tn(:,301:396);
[InDim,TrainSamNum]=size(p1);
[OutDim,TrainSamNum]=size(t1);
[InDim,TestSamNum]=size(p2);
TrainSamNum; %训练样本数
TestSamNum; %测试样本数
InDim; %样本输入维数
OutDim; %样本输出维数
%根据目标函数获取样本输入输出
TestSTD=std(t2); % std(x),x为向量,std表示x方差的无偏估计平方根
OverLapCoe=0.8; %重叠系数
Dist_Max=1.5; %最大距离分辨率
Dist_Min=0.11; %最小距离分辨率
ErrLimit=0.02; %误差分辨率
Decay=0.977; %分辨率衰减常数
lr=0.05; %学习率
MaxEpoch=100; %最大学习次数
DistLimit=Dist_Max; %距离分辨率
b2=t1(:,1);
w2=[];
UnitCenters=[];
SpreadConstant=[];
UnitNum=0;
AllUnitNum=0;
AllTestRSME=[];
tp=[ErrLimit lr MaxEpoch];
for TrainedNum=2:TrainSamNum
NewInput=p1(:,TrainedNum);
NewOutput=t1(:,TrainedNum);
NetOut=RBFNN(NewInput,UnitCenters,w2,b2,SpreadConstant);
NewErr=NewOutput-NetOut;
if (UnitNum==0),
NewDist=Dist_Max;
else
AllDist=dist(UnitCenters',NewInput);
NewDist=min(AllDist);
end
if(norm(NewErr)>=ErrLimit & NewDist>=DistLimit), %判断是否添加隐节点
[UnitCenters,w2,SpreadConstant]=AddNewUnit(NewInput,NewErr,NewDist,UnitCenters,w2,SpreadConstant,OverLapCoe);
TrainedNum;
UnitNum=UnitNum+1;
else
[UnitCenters,w2,b2]=FineTuning(NewInput,NewOutput,UnitCenters,w2,b2,SpreadConstant,tp); % 参数精调的每一次迭代都是一个样本进入
end
if DistLimit>Dist_Min, %分辨率衰减
DistLimit=DistLimit*Decay;
else
DistLimit=Dist_Min;
end
AllUnitNum=[AllUnitNum UnitNum];
TestNNOut=RBFNN(p2,UnitCenters,w2,b2,SpreadConstant);
TestRSME=sqrt(sumsqr(TestNNOut-t2)/TestSamNum)/TestSTD;
AllTestRSME=[AllTestRSME TestRSME];
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -