質問編集履歴
3
間違っていた点の修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
kerasでcsvデータを
|
1
|
+
kerasでcsvデータを正規化する
|
body
CHANGED
@@ -1,60 +1,32 @@
|
|
1
1
|
質問内容
|
2
2
|
---
|
3
|
-
kerasでcsvデータを学習ができるように
|
3
|
+
kerasでcsvデータを学習ができるように正規化したいと思っています。しかしいろいろ検索をかけてはみたのですがよくわかりませんでした。なのでcsvデータを正規化する方法を教えていただきたいです。
|
4
4
|
以下の画像は使用したcsvデータです
|
5
5
|

|
6
6
|
ソースコード
|
7
7
|
---
|
8
8
|
```python
|
9
9
|
import keras
|
10
|
-
import math
|
11
10
|
import pandas as pd
|
12
|
-
import numpy as np
|
13
|
-
import matplotlib.pyplot as plt
|
14
|
-
from keras import models
|
15
|
-
from keras import layers
|
16
|
-
from keras import optimizers
|
17
11
|
from pandas import Series,DataFrame
|
18
12
|
from keras.utils import to_categorical
|
19
|
-
from keras.optimizers import RMSprop
|
20
13
|
|
21
14
|
#csv読み込み
|
22
15
|
sign_train = pd.read_csv("sign_mnist_train.csv",sep=",",header=0)
|
23
16
|
k_data=DataFrame(sign_train.drop("label",axis=1))
|
24
17
|
k_label=DataFrame(sign_train["label"])
|
25
18
|
|
26
|
-
#
|
19
|
+
#正規化
|
27
20
|
k_data=k_data.values
|
28
21
|
k_data = k_data.astype(np.float)
|
29
22
|
k_label = keras.utils.to_categorical(k_label,25)
|
30
23
|
|
31
|
-
#モデルの定義
|
32
|
-
model=models.Sequential()
|
33
|
-
model.add(layers.Dense(60,activation='relu',input_shape=(28*28,)))
|
34
|
-
model.add(layers.Dense(60,activation='relu'))
|
35
|
-
model.add(layers.Dense(60,activation='relu'))
|
36
|
-
model.add(layers.Dense(25,activation='softmax'))
|
37
|
-
model.compile(optimizer=optimizers.RMSprop(lr=0.01),loss='mse',metrics=['accuracy'])
|
38
|
-
|
39
|
-
#検証データセットの設定
|
40
|
-
data_val=k_data[:5000]
|
41
|
-
partial_k_data=k_data[5000:]
|
42
|
-
label_val=k_label[:5000]
|
43
|
-
partial_k_label=k_label[5000:]
|
44
|
-
|
45
|
-
#モデルの訓練
|
46
|
-
history=model.fit(partial_k_data,partial_k_label,epochs=20,batch_size=200,validation_data=(data_val,label_val))
|
47
|
-
|
48
24
|
#結果表示
|
49
25
|
print('k_data')
|
50
26
|
print(k_data)
|
51
27
|
print('----------')
|
52
28
|
print('k_label')
|
53
29
|
print(k_label)
|
54
|
-
print('----------')
|
55
|
-
results=model.evaluate(data_val,label_val)
|
56
|
-
print('results')
|
57
|
-
print(results)
|
58
30
|
```
|
59
31
|
出力結果
|
60
32
|
---
|
@@ -72,7 +44,4 @@
|
|
72
44
|
...
|
73
45
|
[0. 0. 0. ... 0. 0. 0.]
|
74
46
|
[0. 0. 0. ... 0. 1. 0.]]
|
75
|
-
----------
|
76
|
-
results
|
77
|
-
[0.07694398815631867, 0.03819999843835831]
|
78
47
|
```
|
2
足りない点を補った
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
kerasで
|
1
|
+
kerasでcsvデータを用いた学習
|
body
CHANGED
File without changes
|
1
足りない点を補った
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,41 +7,72 @@
|
|
7
7
|
---
|
8
8
|
```python
|
9
9
|
import keras
|
10
|
+
import math
|
10
11
|
import pandas as pd
|
11
12
|
import numpy as np
|
13
|
+
import matplotlib.pyplot as plt
|
14
|
+
from keras import models
|
15
|
+
from keras import layers
|
16
|
+
from keras import optimizers
|
12
17
|
from pandas import Series,DataFrame
|
13
18
|
from keras.utils import to_categorical
|
19
|
+
from keras.optimizers import RMSprop
|
14
20
|
|
21
|
+
#csv読み込み
|
15
22
|
sign_train = pd.read_csv("sign_mnist_train.csv",sep=",",header=0)
|
16
|
-
|
17
23
|
k_data=DataFrame(sign_train.drop("label",axis=1))
|
18
24
|
k_label=DataFrame(sign_train["label"])
|
19
25
|
|
26
|
+
#ベクトル化
|
27
|
+
k_data=k_data.values
|
20
28
|
k_data = k_data.astype(np.float)
|
21
29
|
k_label = keras.utils.to_categorical(k_label,25)
|
22
30
|
|
31
|
+
#モデルの定義
|
32
|
+
model=models.Sequential()
|
33
|
+
model.add(layers.Dense(60,activation='relu',input_shape=(28*28,)))
|
34
|
+
model.add(layers.Dense(60,activation='relu'))
|
35
|
+
model.add(layers.Dense(60,activation='relu'))
|
36
|
+
model.add(layers.Dense(25,activation='softmax'))
|
37
|
+
model.compile(optimizer=optimizers.RMSprop(lr=0.01),loss='mse',metrics=['accuracy'])
|
38
|
+
|
39
|
+
#検証データセットの設定
|
40
|
+
data_val=k_data[:5000]
|
41
|
+
partial_k_data=k_data[5000:]
|
42
|
+
label_val=k_label[:5000]
|
43
|
+
partial_k_label=k_label[5000:]
|
44
|
+
|
45
|
+
#モデルの訓練
|
46
|
+
history=model.fit(partial_k_data,partial_k_label,epochs=20,batch_size=200,validation_data=(data_val,label_val))
|
47
|
+
|
48
|
+
#結果表示
|
49
|
+
print('k_data')
|
23
50
|
print(k_data)
|
24
51
|
print('----------')
|
52
|
+
print('k_label')
|
25
53
|
print(k_label)
|
54
|
+
print('----------')
|
55
|
+
results=model.evaluate(data_val,label_val)
|
56
|
+
print('results')
|
57
|
+
print(results)
|
26
58
|
```
|
27
59
|
出力結果
|
28
60
|
---
|
29
61
|
```
|
30
|
-
|
62
|
+
k_data
|
31
|
-
|
32
|
-
107.
|
63
|
+
[[107. 118. ... 203. 202.]
|
33
|
-
|
34
|
-
155.
|
64
|
+
[155. 157. ... 135. 149.]
|
35
|
-
|
65
|
+
...
|
36
|
-
...
|
66
|
+
[177. 181. ... 87. 93.]
|
37
|
-
|
38
|
-
179.
|
67
|
+
[179. 180. ... 209. 215.]]
|
39
|
-
|
40
|
-
[27455 roes × 784 columns]
|
41
68
|
----------
|
69
|
+
k_label
|
42
70
|
[[0. 0. 0. ... 0. 0. 0.]
|
43
71
|
[0. 0. 0. ... 0. 0. 0.]
|
44
72
|
...
|
45
73
|
[0. 0. 0. ... 0. 0. 0.]
|
46
74
|
[0. 0. 0. ... 0. 1. 0.]]
|
75
|
+
----------
|
76
|
+
results
|
77
|
+
[0.07694398815631867, 0.03819999843835831]
|
47
78
|
```
|