I have a training set that has input and outputs in this way:
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
I need to implement one linear layer neural network that can represent the data set best in MATLAB . What would be the algorithm to do it in MATLAB?
The target output is "1 for a particular class that the corresponding input belongs to and "0 for the remaining 2 outputs.
Consider this example of training a feed-forward ANN of one hidden layer (with 3 nodes). Since your data seems to have more output points than input, I'm using a demo dataset, but the idea is the same:
%# 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);
The output is:
err =
0.075075
cm =
81 0 0 0
0 82 0 0
9 0 52 16
0 0 0 93
Obviously you will need access to the Neural Network Toolbox.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.