• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: matlab  

资源简介

GA优化LSSVM,希望有帮助!自己整的,有错误请指出,虚心接受

资源截图

代码片段和文件信息

tic;
close all;
clear;
clc;
format compact;
%%
train=xlsread(‘C:\Users\XD\Desktop\date2.xlsx‘‘train‘‘A2:G1101‘);
train_out=xlsread(‘C:\Users\XD\Desktop\date2.xlsx‘‘train‘‘I2:I1101‘);
test=xlsread(‘C:\Users\XD\Desktop\date2.xlsx‘‘test‘‘A2:G181‘);
test_out=xlsread(‘C:\Users\XD\Desktop\date2.xlsx‘‘test‘‘I2:I181‘);
%%归一化
[train_data pstrain0] = mapminmax(train‘01);        
[test_data] = mapminmax(‘apply‘test‘pstrain0);       
[train_resultpstrain1] = mapminmax(train_out‘01);   
[test_result] = mapminmax(‘apply‘test_out‘pstrain1);  

train_data = train_data‘;         
train_result=train_result‘;
test_data = test_data‘;
test_result=test_result‘;
indices = crossvalind(‘Kfold‘length(X)3);%交叉验证函数,这里的5表示5折,即将length(p_train)个样本分成5组。
MAXGEN = 200;
NIND = 25;
NVAR = 2;
PRECI = 20;
GGAP = 0.95;
trace = zeros(MAXGEN2);
FieldID = ...
[rep([PRECI][1NVAR]);[00;120200];...
  [11;00;11;11]];
Chrom = crtbp(NINDNVAR*PRECI);
gen = 1;
BestMSE = inf;
Bestgam = 0;
Bestsig2 = 0;
%%
cg = bs2rv(ChromFieldID);
for nind = 1:NIND
    gam=cg(nind1);
    sig2=cg(nind2);

    ObjV(nind1)=CVerror1(XYgamsig2indices);%计算适应值
%     ObjV(nind1)=CVmse(XYgamsig2);
end
[BestMSEI] = min(ObjV);
Bestgam = cg(I1);
Bestsig2 = cg(I2);

%%
while gen<=MAXGEN  
    str = sprintf( ‘迭代数为 = %g‘gen);
    disp(str);
    FitnV = ranking(ObjV);%计算适应度
   SelCh=select(‘sus‘ChromFitnVGGAP);              %选择
   SelCh=recombin(‘xovsp‘SelCh0.7);                  %重组
   SelCh=mut(SelCh);  
    cg = bs2rv(SelChFieldID);
    for nind = 1:size(SelCh1)
        gam=cg(nind1);
        sig2=cg(nind2);
        ObjVSel(nind1)=CVerror1(XYgamsig2indices);%计算子代目标函数值
%         ObjVSingle(nind1)=CVmse(XYgamsig2);
    end
    [ChromObjV] = reins(ChromSelCh11ObjVObjVSel); %重插入
    [NewBestMSEI] = min(ObjV);
    cg_temp = bs2rv(ChromFieldID);
    temp_NewBestMSE = NewBestMSE;
    NewwrostMSE = max(ObjV);
    avgfift=sum(ObjV)/length(ObjV);
    if NewBestMSE < BestMSE
       BestMSE = NewBestMSE;
       Bestgam = cg

评论

共有 条评论