大家好
最近做深度學習
要做 k折交叉驗證
需要將資料分組
所以找一下有方便的分組方式
以下是範例:
import numpy as np import random #例如有 98 個數字(資料ID) nowids = list(range(0,97)) #打亂 random.shuffle(nowids) #平均分10組 nowSIds = np.array_split(nowids, 10) print('總資料有',len(nowSIds),'組') for nowSId in nowSIds: print('該組資料有 ',len(nowSId), '個,資料為 ', nowSId) 總資料有 10 組 該組資料有 10 個,資料為 [96 80 36 92 71 74 94 62 7 30] 該組資料有 10 個,資料為 [ 4 35 65 67 8 11 81 17 34 43] 該組資料有 10 個,資料為 [21 64 82 40 28 93 38 13 91 70] 該組資料有 10 個,資料為 [56 52 84 54 5 85 61 95 22 6] 該組資料有 10 個,資料為 [66 77 73 76 51 27 32 90 75 78] 該組資料有 10 個,資料為 [49 14 20 1 33 25 24 31 19 88] 該組資料有 10 個,資料為 [ 9 69 79 72 60 46 87 2 0 23] 該組資料有 9 個,資料為 [10 53 50 68 83 41 37 57 48] 該組資料有 9 個,資料為 [12 47 26 3 89 44 63 58 16] 該組資料有 9 個,資料為 [55 18 42 86 29 59 39 45 15]
這樣分出來資料就會盡量平均
然後依照這樣的分組
例如 第一批資料就是以 第一組ID 做驗證資料
不加入訓練
用這樣來達到k折交叉驗證目標
這樣就是要跑10次就是了

題外話:
深度學習其實牽涉到的層面很多
不只是數學 還包含資料前處理
而且很重視 domain knowledge
但是我發現很多人做深度都變成 "用想的" 做深度了
變成很難實現與應用
變成拿一組資料
做一組實驗
生一篇論文
既沒辦法複製
也沒有實際貢獻產生
不過在這年代
有時候學術這種東西
就是這麼的一言難盡

留言板
歡迎留下建議與分享!希望一起交流!感恩!