使用MATLAB的神经网络

Shi*_*lpa 2 matlab artificial-intelligence neural-network

我有一个训练集,以这种方式输入和输出:

Input:
0.832 64.643
0.818 78.843
1.776 45.049
0.597 88.302
1.412 63.458
1.468 49.535
1.985 33.387
2.073 30.279
1.431 55.231
1.116 68.521
1.617 44.362
2.159 66.512

Output:
0 0 1
0 0 1
0 1 0
0 0 1
0 0 1
1 0 0
0 0 1
1 0 0
1 0 0
0 0 1
0 0 1
0 1 0
1 0 0
1 0 0
0 1 0
0 1 0
Run Code Online (Sandbox Code Playgroud)

我需要实现一个线性层神经网络,它可以在MATLAB中最好地表示数据集.在MATLAB中用它做什么算法?

目标输出为"1表示相应输入所属的特定类,"0表示其余2个输出.

Amr*_*mro 8

考虑这个训练一个隐藏层(具有3个节点)的前馈ANN的示例.由于您的数据似乎有比输入更多的输出点,我使用的是演示数据集,但想法是一样的:

%# load sample data
laod simpleclass_dataset
input = simpleclassInputs;          %# 2x1000, 2-dimensional points
output = simpleclassTargets;        %# 4x1000, 4 classes

%# split data into training/testing sets
trainInd = 1:500;
testInd = 501:1000;

%# create ANN and initialize network weights
net = newpr(input, output, 3);
net = init(net);
net.trainParam.epochs = 25;        %# max number of iterations

%# learn net weights from training data
net = train(net, input(:,trainInd), output(:,trainInd));

%# predict output of net on testing data
pred = sim(net, input(:,testInd));

%# classification confusion matrix
[err,cm] = confusion(output(:,testInd), pred);
Run Code Online (Sandbox Code Playgroud)

输出是:

err =
     0.075075
cm =
    81     0     0     0
     0    82     0     0
     9     0    52    16
     0     0     0    93
Run Code Online (Sandbox Code Playgroud)

显然,您需要访问神经网络工具箱.

  • 实现神经网络不是一项简单的任务.我建议你先拿一本书然后先熟悉一下(很多关于这个主题的书).然后,您可以从查看其他人的实现开始; 在这里搜索问题,我想到了一个在C中实现简单感知器的问题:http://stackoverflow.com/questions/1697243/help-with-perceptron/1714030#1714030 (3认同)