打亂資料集的方法

2022-08-25 19:18:17 字數 1137 閱讀 3468

原始資料存在一定的分布規律,所以學習曲線不平滑,如果資料量夠大的話,打亂後會呈現隨機分布,學習後更能體現樣本的共性。為了加強模型的泛化能力,有時候需要打亂資料集(包括特徵資料和標籤),但是顯然還是要保證每一條資料中的特徵資料和標籤的對應關係

可以進行如下操作:

1.通過隨機化index

import random

index = [i for i in range(len(data))]

random.shuffle(index)

data = data[index]

label = label[index]

2.將資料集 特徵資料和標籤先整合成乙個array再隨機化行的順序

s_data = np.array([data, labels])#假設data和labels均為二維陣列

s_data = s_data.transpose(1,0,2)

np.random.shuffle(s_data)

data = s_data[:,0,:]

labels = s_data[:,1,:]

ps:numpy中函式shuffle與permutation都是對原來的陣列隨機打亂原來的順序,shuffle中文含義為洗牌,permutation中文含義為排列,區別在於shuffle直接在原來的陣列上進行操作,改變原來陣列的順序,無返回值。而permutation不直接在原來的陣列上進行操作,而是返回乙個新的打亂順序的陣列,並不改變原來的陣列。

import numpy as np

a = np.arange(9)

print("a:",a)

np.random.shuffle(a)

print("a:",a)

b = np.random.permutation(a)

print("b:",b)

print("a:",a)

輸出為:

a: [0 1 2 3 4 5 6 7 8]

a: [1 7 8 0 5 3 2 4 6]

b: [5 1 8 3 6 4 2 7 0]

a: [1 7 8 0 5 3 2 4 6]

python中隨機打亂資料集

假設我們現在有資料 data,label 方法一 打亂資料順序 import random index i for i in range len data random.shuffle index data data index label label index 打亂後的結果 方法二 data s...

深度學習打亂資料的方法

在深度學習中,我們對資料集進行處理,放到神經網路之前,往往需要先打亂資料集,如果資料集是ndarray numpy 資料,屬性 features 和標籤 labels 在同乙個array的話,也就是labels是在資料的最後乙個維度,前幾個維度均為資料的屬性,這樣我們可以通過numpy來打亂資料集。...

同時打亂資料集和標籤的幾種方式

最好先將資料轉換為numpy陣列的格式。方法一 使用np.random.shuffle state np.random.get state np.random.shuffle train np.random.set state state np.random.shuffle label 或者這麼使用...