- 締切済み
Weka 多重パーセプションの手動計算方法を教えて
理解のためにWekaのサンプルにあるirisデータのsepallengthとpetalwidthだけを取り出してMulti Perceptinクラスフィルタをかけました。 しかし、この結果を利用してsepallengthからどのように計算すれば、petalwidthを推測できるのかわかりません。 計算方法を教えて下さい。 === Classifier model (full training set) === Linear Node 0 Inputs Weights Threshold 0.9017153016484972 Node 1 -1.2082392631063057 Sigmoid Node 1 Inputs Weights Threshold -1.6198406465889585 Attrib sepallength -5.765124949928442 Class Input Node 0 Wekaが勝手に算出した数値を幾つか見ると、sepallengthが5.1のとき1.179、sepallengthが4.9のとき1.074にはなっているようですが・・・・どうなってるの・・・・
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- lonely_fish
- ベストアンサー率0% (0/0)
示された計算結果を用いて、計算の実例を示します。 LinearNode0 の入力を x0、出力をy0、 SigmoidNode1 の入力を x1、出力を y1としますと、 x1=(sepallength)*(-5.765) y1=1/(1+exp(-x1-(-1.619)) x0=y1*(-1.208) y0=x0+(0.901) と計算され、y0が推定値となります。ただし、入出力は -1~+1に基準化されます。 (このことは、MultilayerPerceptron::setNormalizeNumericClass のAPIドキュメントに書いてある。) iris のデータでは、sepallength の範囲は 4.3~7.9、petallength の範囲は 1.0~6.9ですので、もし、sepallength が 5.1の時の推定値を計算したければ、 sepallength = (5.1-4.3)/(7.9-4.3)*2-1 = -0.555 を代入することになります。 すると y0 = -0.100 と計算されますので、これを 1.0~6.9に展開すると、 推定される petallength は 3.653 となります。 ちなみに、推定結果は、weka explorer では、 Test options のなかの More options... ボタンを押して 現れる、 Output preditions に “PlainText”を選んであげれば、出力に表示されます。