lvq.m

来自「应用连续小波变换对脑机接口(BCI)信号处理」· M 代码 · 共 52 行

M
52
字号
%处理目标,使其变为两维输出
for i=1:140
    if norml_y_train(i)==-1
       inn(i)=norml_y_train(i)+2;
    else
       inn(i)=norml_y_train(i)+1
    end
end
T = ind2vec(inn);
targets = full(T)

%设置参数,随机分类训练值,5组
in=crossvalind('Kfold',norml_y_train);
%造一个LVQ网络
net=newlvq(minmax(norml_x_train_c3andc4_cwt),4,[.5 .5]);
net.trainParam.epochs = 20;


for i = 1:5
    m=1;
    n=1;
    right=0;
    wrong=0;
    for j=1:140
        if in(j) == i;
           tes(:,m)=norml_x_train_c3andc4_cwt(:,j);
           tes_ans(:,m)=targets(:,j);
           m=m+1;
        else
           trai(:,n)=norml_x_train_c3andc4_cwt(:,j);
           trai_ans(:,n)=targets(:,j);
           n=n+1;
        end
    end
    %[net,tr] = train(net,trai,trai_ans);
    net = train(net,trai,trai_ans);
    
    for k=1:28
        a(:,k,i)=sim(net,tes(:,k));
   % b(k,i)=a(k)-tes_ans(k);
        if a(:,k,i)==tes_ans(:,k)
           right=right+1;
        else
           wrong=wrong+1;
        end
        sr=sum(right);
        acc(i)=sr/28;
    end  
end
acczong=sum(acc);
accpin=acczong/5;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?