如果应用程序的不同类别需要提取一个或多个随机数,应该在哪里初始化随机数生成器以产生良好的随机序列?
特别是,我需要构建一些决策树来训练随机森林。每个决策树的构建涉及以下步骤:
- 加载数据集(按多行数据组织)。
- 此数据集中的一些行是随机选择的,以构建新数据集。这个新的数据集将在树的生长过程中逐渐分裂。
- 这个新数据集用于生成决策树:每个节点的创建需要随机选择这个新数据集的几行(在创建一个节点之前,您必须随机生成这个新数据集的一些小的不同子集) .
上面列出的三个步骤是为构建每个决策树而执行的。刚刚描述的过程规定随机数生成发生多次。例如,第二步应确保每个决策树都使用与初始数据集略有不同的数据集进行训练,因此随机数生成器应避免生成相等的数据集(或者在任何情况下,这种情况发生的可能性应该非常低) .
本质上,在这个过程中,我们可以识别出两个随机性来源:
- 随机数据集的生成
N
,每个数据集训练一个决策树; - 在创建节点之前,您必须
M
从给定的数据集中执行随机提取。
我应该使用多少个随机数生成器?由于我有一个实现随机森林的类和另一个实现决策树的类,我想我会在第一个类(第一个随机源)中初始化一个随机数生成器,在第二个类中初始化另一个随机数生成器类(随机性的第二个来源)。这个对吗?
一般来说,选择正确数量的伪随机数生成器的准则是什么?