0

私は人々が物事に投票したデータをいくつか持っています。投票したすべての人がどのように投票したかについて、各項目の平均を取得するとよいでしょう。投票は、絶えず入ってくる数字の流れと考えることができます。これで平均を正確に計算できるようになりましたが、そのためには、合計または現在の平均と、これまでに表示されたアイテムの数の 2 つの数値を保存する必要があります。私がこれを行う場合、私は使用することができます

AVG[n+1] = (AVG[n]*count + item)/(count+1)

しかし、投票したいアイテムごとに2つのデータを保存する必要があるため、これは面倒です。私が知っている移動平均またはイテレータ平均と呼ばれる別の方法があります。これは、ストリーミングデータで機能しますが、次のようなおおよその平均のみを提供します。

AVG[n+1] = alpha*(item - AVG[n]) + AVG[n]

ここで、アルファは小さな固定学習率です。これは単に、新しいアイテムの方向に、その新しいアイテムと現在の見積もりとの差に比例する量だけ、新しい平均を移動しようとします。これにより、1 つの数値 (現在の平均) を保存するだけで済み、新しいアイテムが入ったときにそれを更新することができますが、これは概算でしかありません。

この方法が導入する誤差に既知の境界があるかどうかを知りたいです...この推定値が真実からどれだけ離れているかを推定する式はありますか?また、適切なアルファをどのように選択すればよいですか? 詳細については、この投稿とこの質問を参照してください。

4

0 に答える 0