Python如何打乱训练数据集的顺序
为了加强模型的泛化能⼒,有时候需要打乱数据集(包括特征数据和标签),但是显然还是要保证每⼀条数据中的特征数据和标签的对应关系
可以进⾏如下操作:
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 = anspose(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)
random在python中的意思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]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论