回答編集履歴

3

fix typo

2018/02/19 08:30

投稿

退会済みユーザー
test CHANGED
@@ -24,4 +24,4 @@
24
24
 
25
25
 
26
26
 
27
- ひとまず原因の解説までに。対応方法はちょっと待ってください。もしかしたら別の方が答えてくれるかもしれません。結果を教えていただけませんか。もしくはone-hot encodingを調べてみてください。
27
+ ひとまず原因の解説までに。対応方法はちょっと待ってください。もしかしたら別の方が答えてくれるかもしれません。もしくはone-hot encodingを調べてみてください。

2

追記

2018/02/19 08:30

投稿

退会済みユーザー
test CHANGED
@@ -24,4 +24,4 @@
24
24
 
25
25
 
26
26
 
27
- ひとまず原因の解説までに。対応方法はちょっと待ってください。もしかしたら別の方が答えてくれるかもしれません。結果を教えていただけませんか。
27
+ ひとまず原因の解説までに。対応方法はちょっと待ってください。もしかしたら別の方が答えてくれるかもしれません。結果を教えていただけませんか。もしくはone-hot encodingを調べてみてください。

1

追記

2018/02/19 04:01

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,27 @@
1
- y_train.shapeもしくはlen(np.unique(y_train))の結果を教えていただけませんか。
1
+ y_train.shapeもしくはlen(np.unique(y_train))のy_train.shapeもしくはlen(np.unique(y_train))の結果を教えていただけませんか。
2
+
3
+
4
+
5
+ 追記
6
+
7
+
8
+
9
+ 原因は次の2つの機能の組み合わせによるものです。
10
+
11
+
12
+
13
+ 1. 交差検証は手元にあるデータを訓練データと検証データに分割しますが、scikit-learnのGridSearchCVではデータを分割してからclassifierの.fitを呼び出す仕組みになっています。
14
+
15
+
16
+
17
+ 2. kerasは入力の種類に応じて内部で対応表を作成します。たとえば、今回の場合y_trainは数値でクラスを表現していますが、文字列でも受け入れられるように作られています。ただし、この対応表が作成されるのは```.fit```が呼ばれたタイミングです。
18
+
19
+
20
+
21
+
22
+
23
+ これらを合わせて考えると、GridSearchCVのデータ分割でトレーニングデータのクラス数が23未満となり、その状態でmodel.fitでクラス数が23個未満の対応表が作られてしまいます。すると、モデルで定義されていた23個の出力数と整合性が取れなくなりエラーが発生するわけです。
24
+
25
+
26
+
27
+ ひとまず原因の解説までに。対応方法はちょっと待ってください。もしかしたら別の方が答えてくれるかもしれません。結果を教えていただけませんか。