將資料集劃分為訓練集以及測試集

2021-10-09 15:01:48 字數 1040 閱讀 1659

將資料集簡單地劃分為測試集以及訓練集

import os

import random

train_percent =

.9# 訓練集所佔比例

valid_percent =

0.1# 測試集所佔比例

xmlfilepath =

'data-delete'

#所在地相對路徑

total_file = os.listdir(xmlfilepath)

#以列表地形式將資料夾中的名字羅列出

num =

len(total_file)

list

=range

(num)

tr =

int(num * train_percent)

#訓練集的個數

tval =

int(num * valid_percent)

trainval = random.sample(

list

, tval)

#在list裡面隨機抽取 tval個數重新構成乙個列表,當作驗證集

train = random.sample(

list

, tr)

ftrain =

open

('train.txt'

,'w'

)fval =

open

('valid.txt'

,'w'

)for i in

list

: name =

"d:\yolov4-zhaban\data\data-delete/"

+ total_file[i]

+'\n'

if i in trainval:

fval.write(name)

else

: ftrain.write(name)

ftrain.close(

)fval.close(

)#啊建立完畢,關閉檔案

劃分測試集與訓練集

cnn datasets為自有資料集,np.random.permutation操作為打亂資料 函式shuffle也是是對原來的陣列進行重新洗牌 即隨機打亂原來的元素順序 區別在於shuffle直接在原來的陣列上進行操作,改變原來陣列的順序,無返回值。而permutation不直接在原來的陣列上進行...

Matlab劃分測試集和訓練集

x是原資料集,分出訓練樣本和測試樣本 ndata,d size x ndata樣本數,d維數 r randperm ndata 1到n這些數隨機打亂得到的乙個隨機數字序列作為索引 xtest x r 1 num test 以索引的前1000個資料點作為測試樣本xtest r 1 num test x...

訓練集,測試集和驗證集劃分的意義

訓練集 驗證集和測試集的意義 有了模型後,訓練集就是用來訓練引數的,說準確點,一般是用來梯度下降的。而驗證集基本是在每個epoch完成後,用來測試一下當前模型的準確率。因為驗證集跟訓練集沒有交集,因此這個準確率是可靠的。那麼為啥還需要乙個測試集呢?這就需要區分一下模型的各種引數了。事實上,對於乙個模...