首页 文章

用于类的Matlab神经网络 - 看不见的数据

提问于
浏览
0

假设我创建了一个神经网络来分离类:

X1; %Some data in Class 1 100x2
X2; %Some data in Class 2 100x2

classInput = [X1;X2];
negative = zeros(N, 1);
positive = ones(N,1);
classTarget = [positive negative; negative positive]; 

net = feedforwardnet(20);
net = configure(net, classInput, classTarget);
net = train(net, classInput, classTarget);
%output of training data
output = net(classInput);

我可以绘制类,并将它们正确分开:

figure();
hold on
style = {'ro' 'bx'};

for i=1:(2*N)
    plot(classInput(i,1),classInput(i,2), style{round(output(i,1))+1});
end

但是,如何将刚刚接受过培训的网络应用于看不见的数据?必须有一个由网络生成的模型,可以应用于新数据?

编辑:使用SIM:

一旦网络被训练,如果我在训练数据上使用sim:

[Z,Xf,Af] = sim(net,classInput);

结果如预期 . 但这只适用于输入大小相同的情况 . 例如,如果我想评估单个数据点:

[Z1,Xf,Af] = sim(net,[1,2]);

尺寸(Z)==尺寸(Z1),但这显然没有意义?当然,我可以评估一个数据点?

1 回答

  • 1

    我是OP,

    我假设输入矩阵的行是数据样本而列是“类别”,这是另一种方式 . 在将矩阵输入到train()函数之前转置矩阵可以解决这个问题 .

相关问题