14

ctr(クリックスルー率)モデルをトレーニングする場合、次のように、履歴データから実際のctrを計算する必要がある場合があります。

                 #(クリック)
    ctr = ----------------
              #(インプレッション)

インプレッション数が少なすぎると、計算されたクリック率が現実的ではないことがわかっています。そのため、十分な大きさのインプレッションを除外するために、常にしきい値を設定します。

ただし、インプレッションが多いほど、クリック率に対する信頼度が高くなることはわかっています。次に、私の質問は次のとおりです。クリック率を計算するためのインプレッション正規化統計手法はありますか?

ありがとう!

4

3 に答える 3

14

おそらく、推定 ctr の信頼区間の表現が必要です。ウィルソン スコア間隔は、試してみるのに適したものです。

ウィルソンスコア間隔

信頼スコアを計算するには、以下の統計が必要です。

  • \hat p観測された ctr (クリック数とインプレッション数の比率)
  • nは総インプレッション数です
  • zα/2(1-α/2)、標準正規分布の分位数です。

Python での簡単な実装を以下に示します。95% の信頼区間に対応するz(1-α/2) =1.96 を使用します。コードの最後に 3 つのテスト結果を添付しました。

# clicks      # impressions       # conf interval
2             10                  (0.07, 0.45)
20            100                 (0.14, 0.27)
200           1000                (0.18, 0.22)

これで、計算された信頼区間を使用するためのしきい値を設定できます。

from math import sqrt

def confidence(clicks, impressions):
    n = impressions
    if n == 0: return 0
    z = 1.96 #1.96 -> 95% confidence
    phat = float(clicks) / n
    denorm = 1. + (z*z/n)
    enum1 = phat + z*z/(2*n)
    enum2 = z * sqrt(phat*(1-phat)/n + z*z/(4*n*n))
    return (enum1-enum2)/denorm, (enum1+enum2)/denorm

def wilson(clicks, impressions):
    if impressions == 0:
        return 0
    else:
        return confidence(clicks, impressions)

if __name__ == '__main__':
    print wilson(2,10)
    print wilson(20,100)
    print wilson(200,1000)

"""    
--------------------
results:
(0.07048879557839793, 0.4518041980521754)
(0.14384999046998084, 0.27112660859398174)
(0.1805388068716823, 0.22099327100894336)
"""
于 2012-10-25T06:20:02.247 に答える
7

これを二項パラメータとして扱えば、ベイジアン推定ができます。クリック率の事前分布が均一 (パラメーター (1,1) のベータ分布) である場合、事後分布はベータ (1+#click, 1+#impressions-#click) になります。この事後の単一の要約統計が必要な場合、事後平均は #click+1 / #impressions+2 ですが、おそらく必要ないでしょう。その理由は次のとおりです。

ctr が十分に高いかどうかを判断するためのあなたの方法はわかりませんが、ctr > 0.9 のすべてに興味があるとしましょう。次に、ベータ分布の累積密度関数を使用して、確率質量のどの割合が 0.9 しきい値を超えているかを調べることができます (これは 1 - 0.9 での cdf になります)。このようにして、サンプルサイズが限られているため、しきい値には推定に関する不確実性が自然に組み込まれます。

于 2012-10-25T14:05:59.447 に答える
0

この信頼区間を計算するには多くの方法があります。ウィルソン スコアの代わりにクロッパー-パーソン間隔があり、これはスプレッドシートで役立つことがわかりました。

上限方程式

下限方程式

どこ

  • B()逆ベータ分布です
  • alphaは信頼水準の誤差です (たとえば、信頼水準が 95% の場合、アルファは 5% です)。
  • nはサンプル数です (インプレッションなど)
  • xは成功数です (例: クリック)

Excel では、式B()によって の実装が提供されます。BETA.INV

Google スプレッドシートには B() に相当する式はありませんが、JavaScript 統計ライブラリから Google Apps Script カスタム関数を適用できます (たとえば、github で jstat を検索します)。

于 2016-08-25T19:07:14.130 に答える