Interpreting the results of modeling a multilayer perceptron on Weka
I am generating a force model using a layered Perceptron on Weka, which is a statistical toolbox.
Weka shows the following generated power model, however I don't know how to interpret it.
How can I calculate the predicted value using this model generated by Weka? I want to know how to calculate it manually using a model.
Thank.
=== Classifier model (full training set) ===
Linear Node 0
Inputs Weights
Threshold -0.040111709313733535
Node 1 -1.8468414006209548
Node 2 0.8245441127585728
Node 3 -0.6384807874184006
Node 4 -0.7484784535220612
Sigmoid Node 1
Inputs Weights
Threshold -0.24446294747264816
Attrib CPU-User -0.608249350584644
Attrib CPU-System 0.13288901868419942
Attrib CPU-Idle 1.0072001456456134
Attrib GPS 0.39886318520181463
Attrib WIFI 2.661390547312707
Attrib Disk-Write 3.3144190265114104
Attrib Screen -0.18379082022126372
Sigmoid Node 2
Inputs Weights
Threshold -0.04552879905091134
Attrib CPU-User 1.2010400180021503
Attrib CPU-System -0.415901207849663
Attrib CPU-Idle -1.8201808907618635
Attrib GPS 0.3297713837591742
Attrib WIFI 2.670046643619425
Attrib Disk-Write 1.0132120671943607
Attrib Screen 1.5785512067159402
Sigmoid Node 3
Inputs Weights
Threshold -7.438472914350278
Attrib CPU-User -6.382669043988483
Attrib CPU-System -1.6622872921207548
Attrib CPU-Idle -0.12729502604878612
Attrib GPS -0.9716992577028621
Attrib WIFI 0.6911695390337304
Attrib Disk-Write -1.1769266028873722
Attrib Screen 0.5101113538728531
Sigmoid Node 4
Inputs Weights
Threshold -5.509838959208244
Attrib CPU-User -0.3709271557180943
Attrib CPU-System -1.7448007514288941
Attrib CPU-Idle -0.08176108597065958
Attrib GPS -1.0234447340811823
Attrib WIFI -1.5759133030274077
Attrib Disk-Write 0.2376861365371351
Attrib Screen -1.5654514081278506
Class
Input
Node 0
Time taken to build model: 0.81 seconds
=== Predictions ontest split===
inst#, actual, predicted, error
1 153727.273 169587.843 15860.57
2 159036.364 168657.043 9620.68
....
source to share
This presentation details the background and equations used for neural networks. The Weka output gives you the type of each node and the inputs and weights. You should be able to calculate numbers yourself using this information.
source to share
In the case of a multilayer perceptron in WEKA. Unless you change the network topology, the nodes in the hidden layer of this network are all sigmoid, but the output nodes are linear units. eg. The "Linear Node 0" is your OUTPUT block, and the Sigmoid Node 1 to 4 are your 4 hidden devices. All values shown are your weights for the interconnects. you can use them to manually calculate your results.
source to share
The question is old, but others may be interested in the answer. Note that, by default, Weka normalizes the input and outputs it to the range -1 to 1, which often improves the accuracy of the model. You will need to scale your inputs to the same range and scale your output from that range to the original range.
Activation function 1 / (1 + exp (-activation)) for non-linear units. With more than a few units, this quickly gets messy, but you might get the right answer. Note also that what Weka calls Threshold is also called Bias in the literature and is simply added to the activation of the device to which it is attached.
source to share
This link can help you for "Sample output":
https://weka.wikispaces.com/Making+predictions
inst# actual predicted error prediction
1 1:? 1:0 0.757
2 1:? 1:0 0.824
3 1:? 1:0 0.807
4 1:? 1:0 0.807
5 1:? 1:0 0.79
6 1:? 2:1 0.661
In this case, taken directly from the test dataset, where all of the class attributes were marked with "?", The "actual" column that can be ignored simply states that each class belongs to an unknown class. The "predicted" column shows that instances 1 through 5 are assumed to be in class 1, which has a value of 0, and example 6, for class 2, which has a value of 1. The error field is blank; if predictions were made on a labeled test suite, each instance where the prediction did not match the label will contain a "+". The probability that instance 1 actually belongs to class 0 is estimated at 0.757.
source to share