質問編集履歴

6

誤字

2021/08/11 02:34

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -20,9 +20,9 @@
20
20
 
21
21
  ```
22
22
 
23
- dataset[0] = {'train':[0 1 2 3 4 5 6 7], 'test':[8 9]}
23
+ dataset[0] = {'train':[0, 1, 2, 3, 4, 5, 6, 7], 'test':[8, 9]}
24
24
 
25
- dataset[1] = {'train':[2 3 4 5 6 7 8 9], 'test':[0 1]}
25
+ dataset[1] = {'train':[2, 3, 4, 5, 6, 7, 8, 9], 'test':[0, 1]}
26
26
 
27
27
  dataset[2]
28
28
 
@@ -58,19 +58,23 @@
58
58
 
59
59
  from sklearn.model_selection import train_test_split
60
60
 
61
+ a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
62
+
61
- a_train, a_test = train_test_split(a, test_size=0.2, shuffle=False)
63
+ a_train, a_test = train_test_split(a,test_size=0.2,random_state=0)
62
64
 
63
65
 
64
66
 
65
67
  print(a_train)
66
68
 
67
- # [0 1 2 3 4 5 6 7]
69
+ print(a_test)
68
70
 
69
71
 
70
72
 
71
- print(a_test)
73
+ #出力
72
74
 
75
+ [4, 9, 1, 6, 7, 3, 0, 5]
76
+
73
- # [8 9]
77
+ [2, 8]
74
78
 
75
79
  ```
76
80
 

5

誤字

2021/08/11 02:34

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  ### 試したこと
80
80
 
81
- 5分割に関しては[以下のコード](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7をもとに分割を試しましたが、この場合、訓練とテスト用データの割合が指定できず、indexを指定するには別のエラーも発生してしまっている状態です。
81
+ 5分割に関しては[以下のコード](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7)をもとに分割を試しましたが、この場合、訓練とテスト用データの割合が指定できず、indexを指定するには別のエラーも発生してしまっている状態です。
82
82
 
83
83
  ```
84
84
 

4

試したことの追記

2021/08/11 02:27

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -73,3 +73,115 @@
73
73
  # [8 9]
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ ### 試したこと
80
+
81
+ 5分割に関しては[以下のコード](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7をもとに分割を試しましたが、この場合、訓練とテスト用データの割合が指定できず、indexを指定するには別のエラーも発生してしまっている状態です。
82
+
83
+ ```
84
+
85
+ def cross_validate(session, split_size=5):
86
+
87
+ results = []
88
+
89
+ kf = KFold(n_splits=split_size)
90
+
91
+ for train_idx, val_idx in kf.split(train_x_all, train_y_all):
92
+
93
+ train_x = train_x_all[train_idx]
94
+
95
+ train_y = train_y_all[train_idx]
96
+
97
+ val_x = train_x_all[val_idx]
98
+
99
+ val_y = train_y_all[val_idx]
100
+
101
+ run_train(session, train_x, train_y)
102
+
103
+ results.append(session.run(accuracy, feed_dict={x: val_x, y: val_y}))
104
+
105
+ return results
106
+
107
+ ````
108
+
109
+
110
+
111
+ 実行コード
112
+
113
+ ```
114
+
115
+ from sklearn.model_selection import KFold
116
+
117
+
118
+
119
+ def cross_validate(nums, nums_str, split_size=5):
120
+
121
+ results = []
122
+
123
+ kf = KFold(n_splits=split_size)
124
+
125
+ for train_idx, val_idx in kf.split(nums, nums_str):
126
+
127
+ print(train_idx, val_idx)
128
+
129
+ print(nums[1])
130
+
131
+ train_x = nums[train_idx]
132
+
133
+ train_y = nums_str[train_idx]
134
+
135
+ val_x = nums[val_idx]
136
+
137
+ val_y = nums_str[val_idx]
138
+
139
+
140
+
141
+ cross_validate([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], split_size=5)
142
+
143
+ ```
144
+
145
+
146
+
147
+ エラー
148
+
149
+ ```
150
+
151
+ [2 3 4 5 6 7 8 9] [0 1]
152
+
153
+ 1
154
+
155
+ ---------------------------------------------------------------------------
156
+
157
+ TypeError Traceback (most recent call last)
158
+
159
+ in <module>()
160
+
161
+ 14 val_y = nums_str[val_idx]
162
+
163
+ 15
164
+
165
+ ---> 16 cross_validate([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], split_size=5)
166
+
167
+
168
+
169
+
170
+
171
+ in cross_validate(nums, nums_str, split_size)
172
+
173
+ 9 print(train_idx, val_idx)
174
+
175
+ 10 print(nums[1])
176
+
177
+ ---> 11 train_x = nums[train_idx]
178
+
179
+ 12 train_y = nums_str[train_idx]
180
+
181
+ 13 val_x = nums[val_idx]
182
+
183
+
184
+
185
+ TypeError: only integer scalar arrays can be converted to a scalar index
186
+
187
+ ```

3

強調

2021/08/11 02:26

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、
5
+ `scikit-learn`でデータ分割するときに、ランダムではなく先頭から順番に分割した後で、
6
6
 
7
7
  そのデータ分割結果を指定して、検証データ・訓練データとしたいです。
8
8
 

2

やりたいことの補足

2021/08/11 01:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,17 @@
2
2
 
3
3
 
4
4
 
5
- scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、そのデータ分割結果を指定して、検証データ・訓練データとしたいです。
5
+ scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、
6
+
7
+ そのデータ分割結果を指定して、検証データ・訓練データとしたいです。
6
8
 
7
9
 
8
10
 
9
11
  [0]~[4]までそれぞれの分割結果をindexで指定して確認しようとしています。
12
+
13
+
14
+
15
+ **つまり、順番は固定して分割したデータを、区画ごとに参照したいです。**
10
16
 
11
17
 
12
18
 

1

例の追加

2021/08/11 01:58

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,25 @@
6
6
 
7
7
 
8
8
 
9
- 以下、のように[0]~[4]までそれぞれの分割結果をindexで指定しようとしています。
9
+ [0]~[4]までそれぞれの分割結果をindexで指定して確認しようとしています。
10
+
11
+
12
+
13
+
14
+
15
+ ```
16
+
17
+ dataset[0] = {'train':[0 1 2 3 4 5 6 7], 'test':[8 9]}
18
+
19
+ dataset[1] = {'train':[2 3 4 5 6 7 8 9], 'test':[0 1]}
20
+
21
+ dataset[2]
22
+
23
+ dataset[3]
24
+
25
+ dataset[4]
26
+
27
+ ```
10
28
 
11
29
 
12
30
 
@@ -16,9 +34,13 @@
16
34
 
17
35
 
18
36
 
37
+
38
+
19
39
  ### 発生している問題・エラーメッセージ
20
40
 
21
41
  現在のコードだとランダムは回避できているのですが、どこに配列番号が格納されているのか、また5回と指定してその候補(例えば、train[2 3 4 5 6 7 8 9] test[0 1])を確認できない状態です。
42
+
43
+
22
44
 
23
45
 
24
46