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.


=== 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
    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

4 answers

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.



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.



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.



This link can help you for "Sample output":

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.



All Articles