2

確率の対数を取ると、返される値は負になります。値は、負の値を拒否する情報検索ライブラリのマッチャーで使用されるため、負の値を正の値にクランプして、マッチャーがドキュメントを拒否しないようにする必要があります。

1つのアプローチは、確率にKなどの乱数を追加することです。

つまり、return max(log(prob。+ K)ここで、Kは大きな定数です。またはreturn max(log(K.Prob)、0)ここで、Kは大きな定数です。

負の対数値を正にクランプするためのより良いアプローチはありますか?これらのうち、従うべきより良いアプローチはどれですか?

上記のアプローチのいずれかを選択した場合、適切なKを選択する方法について非常にめまいがします。誰かが適切な大きなKを選択する方法を提案できれば幸いです。

PS確率を乗算する必要があるモデルを実装しようとしているため、対数値を使用することが重要ですが、確率の積である確率の対数を合計することをサポートするアーキテクチャが実現不可能であるため、対数値を使用すると、ここで重要(アンチログを取ることは実行可能なアプローチではありません)

4

1 に答える 1

4

いつでも log(1 + p) を使用できます。これにより、範囲が (-inf, 0] -> [0, log(2)] からオフセットされます。これで問題が解決すると思います。

一般的に最もよく使用される方法は、他の人が示唆しているように対数を負にすることです。代わりに 1/(1-log(p)) を使用することもできますが、これはあなたの場合には役に立ちません。

したがって、log(1 + p) が最適なソリューションのようです。

于 2012-04-27T06:29:18.757 に答える