質問編集履歴
6
誤字
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -9,8 +9,8 @@ | |
| 9 9 |  | 
| 10 10 | 
             
            例
         | 
| 11 11 | 
             
            ```
         | 
| 12 | 
            -
            dataset[0] = {'train':[0 1 2 3 4 5 6 7], 'test':[8 9]}
         | 
| 12 | 
            +
            dataset[0] = {'train':[0, 1, 2, 3, 4, 5, 6, 7], 'test':[8, 9]}
         | 
| 13 | 
            -
            dataset[1] = {'train':[2 3 4 5 6 7 8 9], 'test':[0 1]}
         | 
| 13 | 
            +
            dataset[1] = {'train':[2, 3, 4, 5, 6, 7, 8, 9], 'test':[0, 1]}
         | 
| 14 14 | 
             
            dataset[2]
         | 
| 15 15 | 
             
            dataset[3]
         | 
| 16 16 | 
             
            dataset[4]
         | 
| @@ -28,13 +28,15 @@ | |
| 28 28 |  | 
| 29 29 | 
             
            ```python
         | 
| 30 30 | 
             
            from sklearn.model_selection import train_test_split
         | 
| 31 | 
            +
            a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
         | 
| 31 | 
            -
            a_train, a_test = train_test_split(a, | 
| 32 | 
            +
            a_train, a_test = train_test_split(a,test_size=0.2,random_state=0)
         | 
| 32 33 |  | 
| 33 34 | 
             
            print(a_train)
         | 
| 34 | 
            -
             | 
| 35 | 
            +
            print(a_test)
         | 
| 35 36 |  | 
| 37 | 
            +
            #出力
         | 
| 36 | 
            -
             | 
| 38 | 
            +
            [4, 9, 1, 6, 7, 3, 0, 5]
         | 
| 37 | 
            -
             | 
| 39 | 
            +
            [2, 8]
         | 
| 38 40 | 
             
            ```
         | 
| 39 41 |  | 
| 40 42 | 
             
            ### 試したこと
         | 
5
誤字
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -38,7 +38,7 @@ | |
| 38 38 | 
             
            ```
         | 
| 39 39 |  | 
| 40 40 | 
             
            ### 試したこと
         | 
| 41 | 
            -
            5分割に関しては[以下のコード](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7をもとに分割を試しましたが、この場合、訓練とテスト用データの割合が指定できず、indexを指定するには別のエラーも発生してしまっている状態です。
         | 
| 41 | 
            +
            5分割に関しては[以下のコード](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7)をもとに分割を試しましたが、この場合、訓練とテスト用データの割合が指定できず、indexを指定するには別のエラーも発生してしまっている状態です。
         | 
| 42 42 | 
             
            ```
         | 
| 43 43 | 
             
            def cross_validate(session, split_size=5):
         | 
| 44 44 | 
             
              results = []
         | 
4
試したことの追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -35,4 +35,60 @@ | |
| 35 35 |  | 
| 36 36 | 
             
            print(a_test)
         | 
| 37 37 | 
             
            # [8 9]
         | 
| 38 | 
            +
            ```
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            ### 試したこと
         | 
| 41 | 
            +
            5分割に関しては[以下のコード](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7をもとに分割を試しましたが、この場合、訓練とテスト用データの割合が指定できず、indexを指定するには別のエラーも発生してしまっている状態です。
         | 
| 42 | 
            +
            ```
         | 
| 43 | 
            +
            def cross_validate(session, split_size=5):
         | 
| 44 | 
            +
              results = []
         | 
| 45 | 
            +
              kf = KFold(n_splits=split_size)
         | 
| 46 | 
            +
              for train_idx, val_idx in kf.split(train_x_all, train_y_all):
         | 
| 47 | 
            +
                train_x = train_x_all[train_idx]
         | 
| 48 | 
            +
                train_y = train_y_all[train_idx]
         | 
| 49 | 
            +
                val_x = train_x_all[val_idx]
         | 
| 50 | 
            +
                val_y = train_y_all[val_idx]
         | 
| 51 | 
            +
                run_train(session, train_x, train_y)
         | 
| 52 | 
            +
                results.append(session.run(accuracy, feed_dict={x: val_x, y: val_y}))
         | 
| 53 | 
            +
              return results
         | 
| 54 | 
            +
            ````
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            実行コード
         | 
| 57 | 
            +
            ```
         | 
| 58 | 
            +
            from sklearn.model_selection import KFold
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            def cross_validate(nums, nums_str, split_size=5):
         | 
| 61 | 
            +
              results = []
         | 
| 62 | 
            +
              kf = KFold(n_splits=split_size)
         | 
| 63 | 
            +
              for train_idx, val_idx in kf.split(nums, nums_str):
         | 
| 64 | 
            +
                print(train_idx, val_idx)
         | 
| 65 | 
            +
                print(nums[1])
         | 
| 66 | 
            +
                train_x = nums[train_idx] 
         | 
| 67 | 
            +
                train_y = nums_str[train_idx]
         | 
| 68 | 
            +
                val_x = nums[val_idx] 
         | 
| 69 | 
            +
                val_y = nums_str[val_idx] 
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            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)
         | 
| 72 | 
            +
            ```
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            エラー
         | 
| 75 | 
            +
            ```
         | 
| 76 | 
            +
            [2 3 4 5 6 7 8 9] [0 1]
         | 
| 77 | 
            +
            1
         | 
| 78 | 
            +
            ---------------------------------------------------------------------------
         | 
| 79 | 
            +
            TypeError                                 Traceback (most recent call last)
         | 
| 80 | 
            +
            in <module>()
         | 
| 81 | 
            +
                 14     val_y = nums_str[val_idx]
         | 
| 82 | 
            +
                 15 
         | 
| 83 | 
            +
            ---> 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)
         | 
| 84 | 
            +
             | 
| 85 | 
            +
             | 
| 86 | 
            +
            in cross_validate(nums, nums_str, split_size)
         | 
| 87 | 
            +
                  9     print(train_idx, val_idx)
         | 
| 88 | 
            +
                 10     print(nums[1])
         | 
| 89 | 
            +
            ---> 11     train_x = nums[train_idx]
         | 
| 90 | 
            +
                 12     train_y = nums_str[train_idx]
         | 
| 91 | 
            +
                 13     val_x = nums[val_idx]
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            TypeError: only integer scalar arrays can be converted to a scalar index
         | 
| 38 94 | 
             
            ```
         | 
3
強調
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            ### 前提・実現したいこと
         | 
| 2 2 |  | 
| 3 | 
            -
            scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、
         | 
| 3 | 
            +
            `scikit-learn`でデータ分割するときに、ランダムではなく先頭から順番に分割した後で、
         | 
| 4 4 | 
             
            そのデータ分割結果を指定して、検証データ・訓練データとしたいです。
         | 
| 5 5 |  | 
| 6 6 | 
             
            [0]~[4]までそれぞれの分割結果をindexで指定して確認しようとしています。
         | 
2
やりたいことの補足
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -1,9 +1,12 @@ | |
| 1 1 | 
             
            ### 前提・実現したいこと
         | 
| 2 2 |  | 
| 3 | 
            -
            scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、 | 
| 3 | 
            +
            scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、
         | 
| 4 | 
            +
            そのデータ分割結果を指定して、検証データ・訓練データとしたいです。
         | 
| 4 5 |  | 
| 5 6 | 
             
            [0]~[4]までそれぞれの分割結果をindexで指定して確認しようとしています。
         | 
| 6 7 |  | 
| 8 | 
            +
            **つまり、順番は固定して分割したデータを、区画ごとに参照したいです。**
         | 
| 9 | 
            +
             | 
| 7 10 | 
             
            例
         | 
| 8 11 | 
             
            ```
         | 
| 9 12 | 
             
            dataset[0] = {'train':[0 1 2 3 4 5 6 7], 'test':[8 9]}
         | 
1
例の追加
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -2,14 +2,25 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            scikit-learnでデータ分割するときに、ランダムではなく先頭から順番に分割した後で、そのデータ分割結果を指定して、検証データ・訓練データとしたいです。
         | 
| 4 4 |  | 
| 5 | 
            -
             | 
| 5 | 
            +
            [0]~[4]までそれぞれの分割結果をindexで指定して確認しようとしています。
         | 
| 6 6 |  | 
| 7 | 
            +
            例
         | 
| 8 | 
            +
            ```
         | 
| 9 | 
            +
            dataset[0] = {'train':[0 1 2 3 4 5 6 7], 'test':[8 9]}
         | 
| 10 | 
            +
            dataset[1] = {'train':[2 3 4 5 6 7 8 9], 'test':[0 1]}
         | 
| 11 | 
            +
            dataset[2]
         | 
| 12 | 
            +
            dataset[3]
         | 
| 13 | 
            +
            dataset[4]
         | 
| 14 | 
            +
            ```
         | 
| 15 | 
            +
             | 
| 7 16 | 
             
            図の出典元:Qiita記事「[比較的少なめのデータで機械学習する時は交差検証 (Cross Validation) をするのです](https://qiita.com/LicaOka/items/c6725aa8961df9332cc7)」
         | 
| 8 17 | 
             
            
         | 
| 9 18 |  | 
| 19 | 
            +
             | 
| 10 20 | 
             
            ### 発生している問題・エラーメッセージ
         | 
| 11 21 | 
             
            現在のコードだとランダムは回避できているのですが、どこに配列番号が格納されているのか、また5回と指定してその候補(例えば、train[2 3 4 5 6 7 8 9] test[0 1])を確認できない状態です。
         | 
| 12 22 |  | 
| 23 | 
            +
             | 
| 13 24 | 
             
            ### 該当のソースコード
         | 
| 14 25 |  | 
| 15 26 | 
             
            ```python
         | 
