No.16735 Re: ニューラルネットワークの時系列データについて 【青木繁伸】 2012/04/08(Sun) 20:47
少なくとも,あなたの状況を再現できるデータとその解析プログラムを提示する必要があるでしょう。
No.16736 Re: ニューラルネットワークの時系列データについて 【富士】 2012/04/08(Sun) 22:56
データ,プログラムです。
対象者が次にどのブランドを選択するのか予測したく考えております。
<データ>
Aさん
ブランド 1回目 2回目 3回目
a 1 0 1
b 0 0 1
c 1 1 0
Bさん
ブランド 1回目 2回目 3回目
a 0 0 1
b 0 1 1
c 1 1 0
Cさん
ブランド 1回目 2回目 3回目
a 1 0 0
b 0 1 0
c 1 1 1
これらのデータを一つのexcelファイルにまとめるために(プログラムのtestに格納)…
Aさん Bさん Cさん
ブランド 1回目 2回目 3回目 1回目 2回目 3回目 1回目 2回目 3回目
a 1 0 1 0 0 1 1 0 0
b 0 0 1 0 1 1 0 1 0
c 1 1 0 1 1 0 1 1 1
としています。
<プログラム>
liblary(nnet)
x <- 0
while (x <= 2) { # while ( 条件式 ) 対象者分繰り返す
input<-test[,3*X+1:3*X+2] #対象者の1回目,2回目選択結果入力
output<-test[,3*(x+1)] #対象者の3回目の結果入力
yosoku.n<-nnet(input,output,size=3)
x <- x + 1
}
この方法ですと,nnetが最後のCさんの入力結果だけでパラメータが定まっているようで,A,Bさんが反映されていません。
どうにか,3人のデータを反映できないでしょうか。
No.16738 Re: ニューラルネットワークの時系列データについて 【青木繁伸】 2012/04/09(Mon) 07:41
> プログラムのtestに格納
3行,9列の行列にしたということでしょうか?
それであっても,abc の3 行, A3B3C3 の9列にしたのか
ABC について abc abc abc の 9 列 にしたのか
> test[,3*X+1:3*X+2]
X は x なのでしょうが,
x = 0 のとき,3*x+1:3*x+2 は 2, 2, 2
x = 1 のときは 6,7,8
x = 2 のときは 10, 12, 14 になりますよ
(3*x+1):(3*x+2) 同じだけど 3*x+1:2 では?(しかしこれも,データがどのような行列として与えられているかわからないので,何が正解か分からない)
while ループの中で yosoku.n<-nnet(input,output,size=3) をしているけど,毎回 yosoku.n が置き換えられますね。そのつど yosoku.n を出力すれば,3 通りの答えがでるでしょうけど,それは,あなたの期待するものではないでしょう。毎回の結果を出力しないで,while ループを抜けた後で結果を表示するなら,最後の結果だけが表示されることになるでしょう。
プログラムを提示するときは,それをコピーしてRコンソールにペーストしたら,あなたが得た結果と同じものが出るようにしておかないと,あなたのやり方のどこがまずいのかわかりません。単純な書き間違いなのか,考え方の間違いなのか区別がつかないですね。
● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る