アプリケーションのさまざまなクラスが1つ以上の乱数を抽出する必要がある場合、適切な乱数シーケンスを生成するために、乱数ジェネレーターをどこで初期化する必要がありますか?
特に、ランダムフォレストをトレーニングするために、いくつかの決定木を構築する必要があります。各デシジョンツリーの構築には、次の手順が含まれます。
- データセット(複数行のデータで構成されている)がロードされます。
- このデータセットの一部の行は、新しいデータセットを構築するためにランダムに選択されます。この新しいデータセットは、ツリーの成長中に徐々に分割されます。
- この新しいデータセットは、決定木を成長させるために使用されます。各ノードを作成するには、この新しいデータセットのいくつかの行をランダムに選択する必要があります(1つのノードを作成する前に、この新しいデータセットのいくつかの小さな異なるサブセットをランダムに生成する必要があります) 。
上記の3つのステップは、各決定木の構築に対して実行されます。今説明した手順では、乱数の生成が数回発生します。たとえば、2番目のステップでは、各決定木が最初の決定木とはわずかに異なるデータセットでトレーニングされるようにする必要があります。したがって、乱数ジェネレーターは、等しいデータセットの生成を回避する必要があります(または、いずれの場合も、これが発生する可能性は非常に低いはずです)。 。
本質的に、この手順では、ランダム性の2つの原因を特定できます。
- ランダムなデータセットの生成
N
。それぞれが単一の決定木をトレーニングします。 M
ノードを作成する前に、特定のデータセットからランダムに抽出を実行する必要があります。
いくつの乱数ジェネレーターを使用する必要がありますか?ランダムフォレストを実装するクラスと、決定ツリーを実装する別のクラスがあるので、最初のクラス(最初のランダム性のソース)で乱数ジェネレーターを初期化し、2番目のクラスで別の乱数ジェネレーターを初期化すると思いましたクラス(ランダム性の2番目のソース)。これは正しいです?
一般に、正しい数の疑似乱数ジェネレーターを選択するためのガイドラインは何ですか?