私は初めて nnet を使用しており、Web にある基本的な例で遊んでいますが、ダミーのおもちゃのデータ セットでその出力を確認できません。これは、正規分布する 2 つの変数を使用した 2 つのクラス (シグナルとバックグラウンド) の単純な識別です。
次のコードは、R (バージョン 3.0) でコピー & ペーストできます。
library(nnet)
## Signal
xs = rnorm( mean=0, sd=1, n=10000)
ys = rnorm( mean=1, sd=1, n=10000)
typs = rep( x=1, n=10000 )
sig = data.frame( typs, xs, ys )
colnames(sig) = c("z","x","y")
sig_train = sig[c(1:5000),]
sig_test = sig[c(5001:10000),]
## Background
xb = rnorm( mean=1, sd=1, n=10000)
yb = rnorm( mean=0, sd=1, n=10000)
typb = rep( x=-1, n=10000 )
bkg = data.frame( typb, xb, yb )
colnames(bkg) = c("z","x","y")
bkg_train = bkg[c(1:5000),]
bkg_test = bkg[c(5001:10000),]
## Training
trainData = rbind( sig_train, bkg_train )
nnRes = nnet( z ~ ., trainData, size = 2, rang = 0.5, maxit = 100)
print(nnRes)
## Testing
sigNNPred = predict(nnRes, sig_test )
bkgNNPred = predict(nnRes, bkg_test )
signNNPred を見ると、ゼロしかありません。
したがって、NN の構成がパフォーマンスに優れていないか、間違ったものを見ているかのいずれかです。
どんなヒントでも大歓迎です。
前もって感謝します、
ザビエル