您好我已经在weka工具中对虹膜数据集进行了多层感知训练。它给了我以下模型。
=== Run information ===
Scheme:weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H a -G -R
Relation: iris
Instances: 150
Attributes: 5
sepallength
sepalwidth
petallength
petalwidth
class
Test mode:split 66.0% train, remainder test
=== Classifier model (full training set) ===
Sigmoid Node 0
Inputs Weights
Threshold -3.5015971588434014
Node 3 -1.0058110853859945
Node 4 9.07503844669134
Node 5 -4.107780453339234
Sigmoid Node 1
Inputs Weights
Threshold 1.0692845992273177
Node 3 3.8988736877894024
Node 4 -9.768910360340264
Node 5 -8.599134493151348
Sigmoid Node 2
Inputs Weights
Threshold -1.007176238343649
Node 3 -4.2184061338270356
Node 4 -3.626059686321118
Node 5 8.805122981737854
Sigmoid Node 3
Inputs Weights
Threshold 3.382485556685675
Attrib sepallength 0.9099827458022276
Attrib sepalwidth 1.5675138827531276
Attrib petallength -5.037338107319895
Attrib petalwidth -4.915469682506087
Sigmoid Node 4
Inputs Weights
Threshold -3.330573592291832
Attrib sepallength -1.1116750023770083
Attrib sepalwidth 3.125009686667653
Attrib petallength -4.133137022912305
Attrib petalwidth -4.079589727871456
Sigmoid Node 5
Inputs Weights
Threshold -7.496091023618089
Attrib sepallength -1.2158878822058787
Attrib sepalwidth -3.5332821317534897
Attrib petallength 8.401834252274096
Attrib petalwidth 9.460215580472827
Class Iris-setosa
Input
Node 0
Class Iris-versicolor
Input
Node 1
Class Iris-virginica
Input
Node 2
Time taken to build model: 34.13 seconds
我是weka的新手我不明白节点是如何编号的?当我们使用sigmoid时,为什么需要阈值。输出中可以有多个属性吗?
答案 0 :(得分:2)
有3个输出节点(0,1,2)和3个隐藏单元(3,4,5)。您可以通过查看它们连接的内容来区分,例如
Sigmoid Node 3
Inputs Weights
Threshold 3.382485556685675
Attrib sepallength 0.9099827458022276
Attrib sepalwidth 1.5675138827531276
Attrib petallength -5.037338107319895
Attrib petalwidth -4.915469682506087
显然是隐藏节点,因为它连接到输入属性。因此连接到此节点的节点位于下一层(0,1,2)。
一般情况下,WEKA会将您的节点从输出层计算到输入层,因此您首先得到outptu节点,然后是连接到它们的节点,然后是前一层,前一层......最后是第一个隐藏层。
为什么有门槛?因为sigmoid被定义为
sigmoid(w,x,b) = 1/(1+exp(-(<w,x>-b)))
和b
是阈值。没有它,无论权重是多少,每个节点都会回答x = 0的完全相同的输出。