• 大小: 13KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-12-01
  • 语言: Matlab
  • 标签: 算法  

资源简介

遗传算法与径向基神经网络结合代码,有需要的自行下载,很好用的

资源截图

代码片段和文件信息

%GA_RBF
%提取最大值+按样本归一化(按行)+RBF
load original_data;
global Scaled_Xtrain Scaled_Xtest Ytrain  net tr testPrediction testClassPrediction testClass ttest result accuracy ;
%曲线平滑
for m=1:4;
    for n=1:20;
      for k=2:21;
    smooth_data{m}{n}(:1)=original_data{m}{n}(:1)./1000;%时间单位转化为秒
    smooth_data{m}{n}(:k)=smooth(original_data{m}{n}(:k));%5点滑动平均
      end
    end
end

%去掉4ETO和GSBT11数据,以及温湿压传感器数据
for m=1:4
    for n=1:20
        sensor_data{m}{n}(:1)=smooth_data{m}{n}(:1);
        sensor_data{m}{n}(:2:16)=smooth_data{m}{n}(:[23468101214:21]);  
    end
end
%提取最大值+按样本归一化(按行)+RBF
for m=1:4
    for n=1:20
        sensor_maxvalue((m-1)*20+n:)=max(sensor_data{m}{n}(:2:16));%最大值
        sensor_baseline((m-1)*20+n:)=min(sensor_data{m}{n}(:2:16));%基线值
    end
end
%训练样本和测试样本
Xtrain=sensor_maxvalue(1:2:80:);
Xtest=sensor_maxvalue(2:2:80:);

[Scaled_Xtrainps]=mapminmax(Xtrain01);
[Scaled_Xtestps]=mapminmax(Xtest01);

Ytrain=[1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;
        0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;
        0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;
        0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1];
    
MAXGEN = 200;             %最大遗传代数
NIND = 20;                %遗传算法中的种群大小
NVAR = 2;                 %变量数目

TolFun=1e-09;%遗传算法中的停止条件之一(Function Tolerance);
Numtrain=40; %训练样本数
Numtest=40; %测试样本数
SensoeNum=15;  %传感器的总个数

%GA_LSSVM.m
%使用遗传算法对SVM的惩罚参数和核参数进行优化,再用SVM训练
%--------------------------------------------------------------------------
%-------------------------------------


Initrange=[0.0001 0.1;0.1 20];

options=gaoptimset(‘Generations‘MAXGEN‘TolFun‘TolFun ‘SelectionFcn‘@selectionstochunif‘CrossoverFcn‘@crossoverintermediate...
‘PopulationSize‘NIND‘EliteCount‘2‘PopInitRange‘Initrange‘MutationFcn‘{@mutationuniform0.1}...
‘PlotFcns‘{@gaplotbestf@gaplotbestindiv@gaplotdistance@gaplotgenealogy@gaplotrange@gaplotscorediversity...
@gaplotscores @gaplotselection}‘CrossoverFraction‘0.8‘StallGenLimit‘100‘HybridFcn‘@fmincon);

[xfvalexitflag]=ga(@yanjiafitness_RBF2[][][][][0.0001;0.1][0.1;20][]options);

best_eg=x(1);
best_sc=x(2);


%用最优参数进行分类
[nettr]=newrb(Scaled_Xtrain‘Ytrain‘best_egbest_sc405);
%输入测试样本进行定性分析
testPrediction=sim(netScaled_Xtest‘);
testClassPrediction=compet(testPrediction);
testClass=vec2ind(testClassPrediction);

ttest=vec2ind(compet(Ytrain‘));

result=0;%统计判别正确率
for sample_count=1:40
    if testClass(sample_count)==ttest(sample_count)
        result=result+1;
    end
  
end

result
accuracy=result./40
%%
%————————————————————————————————————————————————————
%————————————————————————————————————————————————————
%————————————————————————————————————————————————————
%分数差分+提取最大值+RBF
load original_data;
global Sc

评论

共有 条评论