私は自分のサーバーを流れるイベントのストリームを持っています。私はそれらのすべてを保存することはできませんが、私は定期的にいくつかを集約して処理したいと思います。ですから、ストリームのサブセットは、見たことのあるすべてのものをランダムにサンプリングしたままにしておきたいのですが、最大サイズに制限されています。データストリームのランダムなサブセットを保持する方法は?
新しいアイテムごとに、ストアドセットに追加するかどうか、または破棄するかどうかを決定するアルゴリズムが必要です。私がそれを追加して、すでに私の限界に達しているなら、古いアイテムの1つを追い出すアルゴリズムが必要です。
明らかに、これは私が自分の制限を下回っている限りは簡単です(すべて保存してください)。しかし、一度限界を過ぎてしまえば、古いアイテムや新しいアイテムに偏っていなくても、どのようにして良いランダムサンプリングを維持できますか?
おかげで、
を持っていますか? – Enrique
エンリケ、あなたが何を意味するかわからない。私は1つだけのイベントを得た場合、私はそれを保存することを期待します。 – twk
http://en.wikipedia.org/wiki/Reservoir_sampling –