環境:
私は毎日の訪問数を記録するウェブサイトのグループを持っています:
W0 = { 30, 34, 28, 30, 16, 13, 8, 4, 0, 5, 2, 2, 1, 2, .. }
W1 = { 1, 3, 21, 12, 10, 20, 15, 43, 22, 25, .. }
W2 = { 0, 0, 4, 2, 2, 5, 3, 30, 50, 30, 30, 25, 40, .. }
...
Wn
一般的な質問:
- 最もアクティブなサイトを特定するにはどうすればよいですか?
これにより、過去数日間で訪問数が増えたり、訪問数が急増したりすることになります。説明のために、上記の小さな例では、最初はW0が人気がありますが、放棄を示し始めています。W1は安定した人気を示しています(孤立したピークがあります)。
最初の考え:
私はこのスレッドを簡単な式が記述されているSOで見つけました:
// pageviews for most recent day
y2 = pageviews[-1]
// pageviews for previous day
y1 = pageviews[-2]
// Simple baseline trend algorithm
slope = y2 - y1
trend = slope * log(1.0 +int(total_pageviews))
error = 1.0/sqrt(int(total_pageviews))
return trend, error
これは見栄えがよく簡単ですが、問題があります。
計算は勾配に基づいています。これは問題なく、私が興味を持っている機能の1つですが、私見では非単調なシリーズには問題があります。数日中に訪問数が一定であるため(勾配= 0)、上記の傾向はゼロになると想像してください。
質問:
- ケース(単調な増加/減少)と多数のヒットの両方を処理するにはどうすればよいですか?
- 別の数式を使用する必要がありますか?