문맥:
매일 방문수를 기록하는 웹 사이트 그룹이 있습니다.
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은 꾸준한 인기를 보였으며 (일부 고립 된 피크로) W3은 조용한 시작 후 중요한 인상을 받았습니다.
초기 생각 :
간단한 수식이 설명되어있는 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
이것은 좋아 보이고 쉬워 보이지만 문제가 있습니다.
계산은 기울기를 기준으로합니다. 이것은 괜찮으며 관심있는 기능 중 하나이지만 IMHO는 non-monotonic 시리즈에 문제가 있습니다. 며칠 동안 일정한 방문 횟수 (따라서 경사 = 0)가 있다고 가정하면 위의 추세는 0이 될 것입니다.
질문 :
- 두 경우 (모노 닉 증가 / 감소)와 많은 히트를 어떻게 처리합니까?
- 별도의 수식을 사용해야합니까?