在计算机中,机器学习训练是以每个batch为训练单位,并反向传播一次。
把batch看成是一个学习过程,怎么才能学好呢?当然是要学习正确的东西,也就是样本要尽可能的接近真实的概率分布(模型学习的本质就是去拟合真实的概率分布)。随机打乱的样本比排序的样本更接近真实分布。排序后有一层相关性,在一定程度上表现出不同的概率分布。因此,数据必须加扰。有没有办法在不影响内容的情况下打乱python中的顺序?当然答案是肯定的,那就是我们的 shuffle() 函数。
一、shuffle()函数
是打乱序列里面的元素,并随机排列的。
效果是将序列中的元素打乱,序列中元素的顺序发生变化,但其内容保持不变。
二、使用说明
import random
random.shuffle (alist )
注意:
alist 可以是列表或序列。 shuffle() 不能直接访问,需要导入随机模块。
三、shuffle() 方法
1、将单列表的所有元素随机排列
>>>import random
>>>list =[0,1,2,3,4,5,6,7,8,9]
>>>random.shuffle(list)
>>>list
[6,2,4,7,9,3,1,5,8,0]
2、将单列表的所有元素随机排列
a、b 和 c 都是二维列表。我们用a、b、c作为shuffle参数来洗牌,发现结果是二维列表的行顺序没有变化,列的顺序发生了变化,而a、 b和c的三个二维表的变化是一致的。
from sklearn.utils import shuffle
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
b = [[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]
c = [[19, 20, 21],
[22, 23, 24],
[25, 26, 27]]
a, b, c = shuffle(a, b, c)
print(a)
print(b)
print(c)
输出:
[[7, 8, 9], [4, 5, 6], [1, 2, 3]]
[[16, 17, 18], [13, 14, 15], [10, 11, 12]]
[[25, 26, 27], [22, 23, 24], [19, 20, 21]]
以上就是小编总结的洗牌方法。 shuffle() 函数可以随机播放列表和序列。它可以随机播放单个列表或多个列表。关键是不影响内容,好测好用,快来学习吧~
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中手动输入文本09/29
- ♥ 如何在python中打印换行符11/13
- ♥ mac需要安装python吗12/26
- ♥ python确认按下了什么键09/25
- ♥ Python判断是否为函数09/28
- ♥ 如何在python中判断一个三角形09/26
内容反馈