0

私は初めて 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 の構成がパフォーマンスに優れていないか、間違ったものを見ているかのいずれかです。

どんなヒントでも大歓迎です。

前もって感謝します、

ザビエル

4

1 に答える 1