"seed" 在 Python 中拆分测试验证数据的目的是什么?如何得出正确的数字?

What is "seed" for in splitting test-val data in Python and how to come up with a correct number?

我正在尝试拆分我的图像数据集,以便它可以具有训练集和验证集。我发现这个 Python 的图书馆叫做 split-folders。语法简单易懂

splitfolders.ratio("input_folder", output="output", seed=1337, ratio=(.8, .1, .1), group_prefix=None)

但我不知道这个种子参数及其作用。页面上的描述只说“种子使分裂可重现”和“它洗牌”但它并没有真正为我解释任何事情。我用谷歌搜索了一下,其中 none 给了我一个明确的答案。谁能给我一个简单的解释?

默认号码是1337,但为什么呢?将种子设置为 1337 是什么意思?他们是怎么得出这个数字的?如何为我的数据集找到正确的种子?

当您将语料库拆分为训练集、验证集和测试集时,您会随机将一个数据点分配给这三组中的一组。使用 seeds.

可追踪随机性

想象一下,您有一个随机生成器,一个 BlackBox,它会为您提供一系列随机数;但是对于每个给定的种子,它生成的序列将始终相同。例如,对于 seed=1337,随机生成器将始终在同一台计算机上生成一系列随机数,如 12,901,110,1,....。

为什么我们关心tracing的随机性,尤其是在划分语料训练的情况下?因为大多数时候,您想使用相同的数据重复相同的实验。所以如果你不使用种子值,每次你 运行 相同的实验,你最终会得到不同的训练设置。

种子值本身并不重要,只要你通过某个值得到它,你就知道它在你的实验中是固定的。我个人设置为素数。