문제

웹 페이지에 많은 하이퍼 링크가 있습니다. 과거의 관찰에서 나는 사용자가 각 하이퍼 링크를 클릭 할 확률을 알고 있습니다. 따라서 이러한 확률의 평균 및 표준 편차를 계산할 수 있습니다.

이제이 페이지에 새 하이퍼 링크를 추가합니다. 짧은 양의 테스트 후이 하이퍼 링크를 볼 수있는 20 명의 사용자 중 5 개를 클릭합니다.

다른 하이퍼 링크에 대한 클릭 확률의 알려진 평균 및 표준 편차를 고려하여 ( "사전 기대") 사용자가 새 하이퍼 링크를 클릭 할 확률을 어떻게 효율적으로 추정 할 수 있습니까?

순진한 솔루션은 다른 확률을 무시하는 것입니다.이 경우 내 추정치는 단지 5/20 또는 0.25입니다. 그러나 이는 우리가 관련 정보, 즉 클릭 확률이 무엇인지에 대한 사전 기대치를 버리고 있음을 의미합니다.

그래서 저는 다음과 같은 모습을 찾고 있습니다.

double estimate(double priorMean, 
                double priorStandardDeviation, 
                int clicks, int views);

나는 수학 표기법보다 코드에 더 익숙하기 때문에 모든 답변은 수학을 선호하는 코드 또는 의사 코드를 사용하도록 요구합니다.

도움이 되었습니까?

해결책

나는 그것이 근본적으로 다르기 때문에 이것을 새로운 대답으로 만들었습니다.

이것은 Chris Bishop, 기계 학습 및 패턴 인식, 2 장 "확률 분포"P71 ++를 기반으로합니다. http://en.wikipedia.org/wiki/beta_distribution.

먼저 파라미터에 대한 분포를 구축하기 위해 주어진 평균 및 분산에 베타 분포를 장착합니다. 그런 다음 Bernoulli 변수에 대한 예상 매개 변수 인 분포 모드를 반환합니다.

def estimate(prior_mean, prior_variance, clicks, views):
  c = ((prior_mean * (1 - prior_mean)) / prior_variance - 1)
  a = prior_mean * c
  b = (1 - prior_mean) * c
  return ((a + clicks) - 1) / (a + b + views - 2)

그러나, 나는 당신이 가지고있는 샘플 수와 이전에 얼마나 좋은지에 대한 정보를 버리기 때문에 이전 평균/분산이 당신에게 효과가 없을 것이라고 매우 긍정적입니다.

대신 : (웹 페이지, link_clicked) 쌍 세트가 주어지면 특정 링크를 클릭 한 페이지 수를 계산할 수 있습니다. 그게 m이라고합시다. 링크를 클릭하지 않은 시간을 l로 두십시오.

이제 새 링크에 대한 클릭 수가 A이고 사이트 방문 횟수는 b입니다. b. 그러면 새 링크의 확률이 있습니다

def estimate(m, l, a, b):
  (m + a) / (m + l + a + b)

꽤 사소 해 보이지만 실제로 유효한 확률 적 기초가 있습니다. 구현 관점에서 M과 L을 전 세계적으로 유지할 수 있습니다.

다른 팁

P/N은 실제로 빈번한 관점에서 정확합니다.

당신은 또한 베이지안 접근법을 사용하여 사전 지식을 통합 할 수 있지만, 그 지식이없는 것 같기 때문에 P/N이 갈 길이라고 생각합니다.

원한다면 IIRC가 이전에 균일 한 Laplace의 규칙을 사용할 수도 있습니다. 페이지의 각 링크를 0 대신 1의 시작으로 제공하기 만하면 (따라서 링크를 클릭 한 숫자를 계산하면 각각 +1 보너스를 제공하고 N의 비슷합니다).

업데이트] 여기에 베이지안 접근 방식이 있습니다.

P (w)가 특정 그룹 W에있을 확률이되도록하자. P (L)을 특정 링크를 클릭 할 확률이되도록하자. 그러면 당신이 찾고있는 확률은 p (l | w)입니다. Bayes 'Theorem에 의해, 당신은 이것을

p (l | w) = p (w | l) * p (l) / p (w)

P (L)을 클릭 한 금액만큼 P (L), 나머지 사용자와 관련하여 해당 그룹의 크기에 의해 p (w)를 추정 할 수 있고 p (w | l) = p (w and l) / p (l)를 추정 할 수 있습니다. ) L을 클릭 한 특정 그룹의 사람의 수에 의해 l을 클릭 할 확률로 나눈 값.

베이 에스 정리 증거 :

P(A,B) = P( A | B ) * P( B )    (1) 

부터,

P(A,B) = P(B,A)                 (2)

(2)를 (1)으로 대체합니다.

P(A | B) * P( B ) = P (B | A) * P(A)

따라서 (베이 에스 정리),

           P( B | A ) * P(A)
P(A | B) = -----------------
                 P(B)

P(A)   -- prior/marginal probability of A, may or may not take into account B
P(A|B) -- conditional/posterior probability of A, given B.
P(B|A) -- conditional probability of B given A.
P(B)   -- prior/marginal probability of B

결과,

P( A | B ) = P( A ), then a and b are independent
P( B | A ) = P( B ), and then

그리고 독립의 정의는

P(A,B) = P(A | B) * P( B ) = P( A )* P( B )

사전을 바꾸고 문제가 생각되는 방식을 변경하여 취향에 대한 확률을 쉽게 조작하는 것이 쉽다는 점에 주목해야합니다. 인류 원리와 베이 에스 정리.

X가 W와 얼마나 강력한 지 알아야합니다.

큰 웹 사이트를 개발하려면 더 복잡한 수학적 모델을 원할 것입니다. Digg와 같은 웹 사이트를 운영하는 경우, 당신은 당신이 당신의 석회화에 영향을 미쳐야한다는 많은 사전 지식을 가지고 있습니다. 이로 인해 다변량 통계가 발생합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top