質問編集履歴

3

やったことをコードとともに追記しました。

2021/06/29 01:46

投稿

ques346
ques346

スコア47

test CHANGED
File without changes
test CHANGED
@@ -24,15 +24,129 @@
24
24
 
25
25
  自分でやってみたこと
26
26
 
27
- ちょっと今コードがないのですが、
27
+ csv作り直してコード書きました。
28
28
 
29
- このcsvがsinカーブのものでは明らかにないので自分で、
30
29
 
31
- sinカーブのx,y座標を20点程エクセルの計算式で作ったcsvファイル(見本)と、
32
30
 
33
- 自分で6点程プロットして、x,y座標を打ち込んだcsvファイル(テスト?)を作り、
31
+ ```R
34
32
 
33
+ #バックプロパゲーションによるnnetの学習
34
+
35
+ library(nnet)
36
+
37
+ train <- read.csv("sin9.csv",h=T)
38
+
39
+ train
40
+
41
+ plot(train)
42
+
43
+ valid <- read.csv("sin2.csv",h=T)
44
+
45
+ valid
46
+
47
+ plot(valid)
48
+
49
+
50
+
51
+ #size:中間層、maxit:くりかえし回数 size number of units in the hidden layer. Can be zero if there are skip-layer units.
52
+
53
+ #それから,predの"type"で出力形式を指定します.通常は"class"でよい
54
+
55
+ #predic.nnetのhelpより If type = "raw", the matrix of values returned by the trained network;
56
+
57
+ #if type = "class", the corresponding class
58
+
59
+ #(which is probably only useful if the net was generated by nnet.formula). weights: 10
60
+
61
+
62
+
63
+ sin1 <- nnet(data=train,output~input,size=3,maxit=2000);
64
+
65
+ yosoku1 <- predict(sin1,valid,type="raw")
66
+
67
+ plot(valid,type="b")
68
+
35
- nnetしたところ、一応グラフは描けたのですが、その学習後のグラフというのが、
69
+ points(train,type="b",col=2,pch=16)
70
+
71
+ points(valid$input,yosoku1,type="b",col=4,pch=20)
72
+
73
+ lines(valid$input,yosoku1,col=4)
74
+
75
+ ```
76
+
77
+
78
+
79
+ sin2.csv
80
+
81
+ input,output
82
+
83
+ 0,0
84
+
85
+ 0.1,0.099833417
86
+
87
+ 0.2,0.198669331
88
+
89
+ 0.3,0.295520207
90
+
91
+ 0.4,0.389418342
92
+
93
+ 0.5,0.479425539
94
+
95
+ 0.6,0.564642473
96
+
97
+ 0.7,0.644217687
98
+
99
+ 0.8,0.717356091
100
+
101
+ 0.9,0.78332691
102
+
103
+ 1,0.841470985
104
+
105
+ 1.1,0.89120736
106
+
107
+ 1.2,0.932039086
108
+
109
+ 1.3,0.963558185
110
+
111
+ 1.4,0.98544973
112
+
113
+ 1.5,0.997494987
114
+
115
+ 1.6,0.999573603
116
+
117
+ 1.7,0.99166481
118
+
119
+ 1.8,0.973847631
120
+
121
+ 1.9,0.946300088
122
+
123
+ 2,0.909297427
124
+
125
+
126
+
127
+ sin9.csv
128
+
129
+ input,output
130
+
131
+ 0,0
132
+
133
+ 0.75,0.5
134
+
135
+ 1.5,1
136
+
137
+ 3,0
138
+
139
+ 3.75,-0.5
140
+
141
+ 4.5,-1
142
+
143
+ 6,0
144
+
145
+
146
+
147
+
148
+
149
+
36
150
 
37
151
  初めのほうだけsinっぽい曲線にはなったのですが、これが「だから何なのか」よく分かりません。
38
152
 

2

自分でやってみたことを書き、新たな疑問を書きました。

2021/06/29 01:46

投稿

ques346
ques346

スコア47

test CHANGED
File without changes
test CHANGED
@@ -19,3 +19,25 @@
19
19
  output~inputってなんでしょうか?
20
20
 
21
21
  どういう意味があって、どこに書くんでしょうか?csvファイルには、input、等書けないと思うのですが(数字とコンマのみだし
22
+
23
+
24
+
25
+ 自分でやってみたこと
26
+
27
+ ちょっと今コードがないのですが、
28
+
29
+ このcsvがsinカーブのものでは明らかにないので自分で、
30
+
31
+ sinカーブのx,y座標を20点程エクセルの計算式で作ったcsvファイル(見本)と、
32
+
33
+ 自分で6点程プロットして、x,y座標を打ち込んだcsvファイル(テスト?)を作り、
34
+
35
+ nnetしたところ、一応グラフは描けたのですが、その学習後のグラフというのが、
36
+
37
+ 初めのほうだけsinっぽい曲線にはなったのですが、これが「だから何なのか」よく分かりません。
38
+
39
+
40
+
41
+ 見本ファイルが正しいsinカーブであり、これをそのまま真似れば正しいsinカーブになるのですが、
42
+
43
+ わざわざテストを参考にする意味がよく分かりません。

1

追記しました。

2021/06/28 07:14

投稿

ques346
ques346

スコア47

test CHANGED
File without changes
test CHANGED
@@ -9,3 +9,13 @@
9
9
  sin9の方はサイト上にあるのですが、sin2はどこにあるんでしょうか、自分でsinの値を計算して作っていくのでしょうか、
10
10
 
11
11
  また、input,outputとは何でしょうか、数字しか入れられないのでは・・・
12
+
13
+
14
+
15
+ また、
16
+
17
+ 引数の、
18
+
19
+ output~inputってなんでしょうか?
20
+
21
+ どういう意味があって、どこに書くんでしょうか?csvファイルには、input、等書けないと思うのですが(数字とコンマのみだし