2012-01-14 25 views
2

検索クエリの関連性スコアを持つドキュメントの一覧があります。ランキングプロセスで日付を紹介しようとするために、関連性スコアを下げるために古い文書が必要です。私はすでに1 /(1 + date_difference)のような関数を使っていろいろ試してみましたが、逆関数は最近の最近の日付をあまりにも区別しています。値を減衰させる関数

私はおそらく、範囲(0..1)とドメイン(0..x)を使ってスコアを増幅する数学的関数を考えていました。ここで、x軸はドキュメントの年齢です。もし、単純な1 /(1 + x)があまりにも早く、あまりにも急速に減少し、sigmoid functionのような1 /(1 + E^

+0

リンク先の画像を明確にすることはできますか? 'x'の後に関数を一定にしますか? –

答えて

1

崩壊行動は、多くの場合、指数関数(多くの崩壊過程がそれに続く)によってよくモデル化されます。あなたはy -range [0,1] A=1を設定したいのであなたは2つの正のパラメータABを使用して

y(x) = A exp(-B x) 

になるだろう。 Bが大きいほど減衰が遅くなります。

+0

ありがとうございます。この結果が最高のパフォーマンスを発揮することがわかった。次のように使用します。 exp(-0.1 * $ days); – dscer

1

:それは私がさらに画像によって機能から必要なものを説明するのが最善です-x)またはエラー関数が目的に適している可能性があります。そのような関数の負の数値のどこかに現在の日付を置き、設定可能な時間の間現在の値を取得してから、ベース値に向かって減少する値を得ることができます。

1
log((x+1)-age_of_document) 

ここで、対数の底は(x + 1)です。 xはあなたのダイアグラムの通りであり、 "しきい値"です。文書の年齢がxより大きい場合、スコアは負になります。スケーリングを導入するために可能な限り最大のスコアを掛けます。

など。ドメイン=(0,10)、最大スコアが10の場合:10*(log(11-x))/log(11)

0

少し遅れますが、thitonによれば、あなたの長い尾の「フロア」値があるので、代わりにシグモイド関数を使用することをお勧めしますデータポイント。例:

0.8/(1+5^(x-3)) + 0.2 - 定数5と3を調整して曲線の傾きを調整できます。 0.2は床がある場所です。

関連する問題