2017年5月1日 星期一

weka.classifiers.functions.MultilayerPerceptron

weka.classifiers.functions.MultilayerPerceptron 為多層感知機學習器。
使用具備輸入層、隱藏層、及輸出層的類神經結構,以倒傳遞法學習各層之間的連結權重,於輸出層進行類別或數值預測。
若遇名目屬性,將先進行二值化處理再學習及預測。

參數說明:
 -L <learning rate> 依據下降梯度的多少百分比更新權重,稱為學習速率,介於[0,1]之間,預設值 0.3。
 
 -M <momentum> 參考上回權重更新量的多少百分比更新本回權重,稱為更新動量,介於[0,1]之間,預設值 0.2。
 
 -N <number of epochs> 訓練迭代次數,預設值 500。
 
 -V <percentage size of validation set> 連續變差終止訓練用的驗證集大小比例,介於[0,100],預設值0。
 
 -S <seed>  亂數產生器種子,值應>=0,預設值為0。
 
 -E <threshold for number of consequetive errors> 網路終止前驗證集允許的連續錯誤門檻,值應>0,預設值20。
 
 -G 開啟圖形介面,預設不開啟圖形介面。
  
 -A 不要自動建立網路連結,只在開啟圖形介面(-G)才有作用。
 
 -B 不要自動使用【名目轉成二元】屬性過濾器,預設使用【名目轉成二元】屬性過濾器。
 
 -H <comma seperated numbers for nodes on each layer> 建立網路的隱藏層。
       0表示不要隱藏層,預設值是a。決定隱藏層逐層的節點個數值可以是 
       i表示輸入層屬性個數, o表示輸出層類別數, t表示i+o總數, a表示i及o平均值。
  
 -C 不要對數值類別輸出作正規化,預設數值類別輸出會作正規化
  
 -I 不要對屬性輸入值作正規化,預設屬性輸入值會作正規化,名目屬性值將介於[-1,1]之間
  
 -R 不允許重設網路
  
 -D 學習速率會衰減,預設不衰減

>java -cp weka.jar;. weka.classifiers.functions.MultilayerPerceptron -t data\weather.numeric.arff
      -L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H a

Options: -L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H a


Sigmoid Node 0
    Inputs    Weights
    Threshold    -3.248835441689124
    Node 2    5.706344521860183
    Node 3    2.443270263208691
    Node 4    2.6425576499015655
    Node 5    2.5103414057156117
Sigmoid Node 1
    Inputs    Weights
    Threshold    3.247940047055843
    Node 2    -5.7047440571074866
    Node 3    -2.3959635449403223
    Node 4    -2.61941341516743
    Node 5    -2.57892674553124
Sigmoid Node 2
    Inputs    Weights
    Threshold    -1.4298110453038173
    Attrib outlook=sunny    1.2796074137730873
    Attrib outlook=overcast    2.5993304643376662
    Attrib outlook=rainy    -2.482189408449902
    Attrib temperature    -0.991784436689735
    Attrib humidity    -4.132575972523981
    Attrib windy    -0.8030823939514043
Sigmoid Node 3
    Inputs    Weights
    Threshold    -0.7740672340804496
    Attrib outlook=sunny    -1.9100370742566128
    Attrib outlook=overcast    2.3822068707682824
    Attrib outlook=rainy    0.2349921312574373
    Attrib temperature    -0.8639638424331715
    Attrib humidity    -0.8117295111072012
    Attrib windy    3.0923597946788437
Sigmoid Node 4
    Inputs    Weights
    Threshold    -0.7812523749731839
    Attrib outlook=sunny    -2.0149350612947305
    Attrib outlook=overcast    2.4850160661055654
    Attrib outlook=rainy    0.2429746779978898
    Attrib temperature    -0.9010443938018432
    Attrib humidity    -0.8326891162034927
    Attrib windy    3.255120039808521
Sigmoid Node 5
    Inputs    Weights
    Threshold    -0.7574102682219431
    Attrib outlook=sunny    -1.9605922799976891
    Attrib outlook=overcast    2.481930135373603
    Attrib outlook=rainy    0.2838381715677166
    Attrib temperature    -0.8613350411165092
    Attrib humidity    -0.775628050353589
    Attrib windy    3.169910152935346
Class yes
    Input
    Node 0
Class no
    Input
    Node 1

註: 學到的神經網路如下圖,其中,黃色兩個節點由上而下分別為Node 0, Node 1。
   紅色4個節點由上而下分別為Node 2, Node 3, Node 4, Node 5。
   隱藏層會有4個節點的理由為參數-H a,而 a=(i + o)/2=(6 + 2)/2=4。
Time taken to build model: 0.1 seconds Time taken to test model on training data: 0.01 seconds === Error on training data === Correctly Classified Instances 14 100 % Incorrectly Classified Instances 0 0 % Kappa statistic 1 Mean absolute error 0.036 Root mean squared error 0.0454 Relative absolute error 7.7533 % Root relative squared error 9.4618 % Total Number of Instances 14 === Confusion Matrix === a b <-- classified as 9 0 | a = yes 0 5 | b = no === Stratified cross-validation === Correctly Classified Instances 11 78.5714 % Incorrectly Classified Instances 3 21.4286 % Kappa statistic 0.5116 Mean absolute error 0.265 Root mean squared error 0.4627 Relative absolute error 55.6497 % Root relative squared error 93.7923 % Total Number of Instances 14 === Confusion Matrix === a b <-- classified as 8 1 | a = yes 2 3 | b = no 如下 weather.numeric.arff 案例集的14個案例利用2個文字屬性及2個數字屬性,預測文字屬性。
outlooktemperaturehumiditywindyplay
sunny8585FALSEno
sunny8090TRUEno
rainy6570TRUEno
sunny7295FALSEno
rainy7191TRUEno
overcast8386FALSEyes
rainy7096FALSEyes
rainy6880FALSEyes
overcast6465TRUEyes
sunny6970FALSEyes
rainy7580FALSEyes
sunny7570TRUEyes
overcast7290TRUEyes
overcast8175FALSEyes
參考: 1.weka.classifiers.functions.MultilayerPerceptron code | doc

沒有留言: