تحديد احتمالية قيام المستخدم بالنقر فوق الارتباط التشعبي بكفاءة

StackOverflow https://stackoverflow.com/questions/1133193

  •  16-09-2019
  •  | 
  •  

سؤال

لذلك لدي مجموعة من الارتباطات التشعبية على صفحة ويب.أعرف من الملاحظة السابقة احتمالات قيام المستخدم بالنقر فوق كل من هذه الارتباطات التشعبية.وبالتالي يمكنني حساب المتوسط ​​والانحراف المعياري لهذه الاحتمالات.

أقوم الآن بإضافة ارتباط تشعبي جديد إلى هذه الصفحة.بعد فترة قصيرة من الاختبار، وجدت أنه من بين 20 مستخدمًا شاهدوا هذا الارتباط التشعبي، قام 5 منهم بالنقر عليه.

مع الأخذ في الاعتبار المتوسط ​​المعروف والانحراف المعياري لاحتمالات النقر على الارتباطات التشعبية الأخرى (وهذا يشكل "توقعًا مسبقًا")، كيف يمكنني تقدير احتمال قيام المستخدم بالنقر فوق الارتباط التشعبي الجديد بكفاءة؟

قد يكون الحل الساذج هو تجاهل الاحتمالات الأخرى، وفي هذه الحالة يكون تقديري هو 5/20 أو 0.25 فقط - ولكن هذا يعني أننا نتخلص من المعلومات ذات الصلة، أي توقعاتنا المسبقة لاحتمالية النقر.

لذلك أنا أبحث عن وظيفة تبدو كالتالي:

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

أود أن أطلب ذلك، نظرًا لأنني أكثر دراية بالرمز من التدوين الرياضي، فإن أي إجابات تستخدم الكود أو الكود الكاذب بدلاً من الرياضيات.

هل كانت مفيدة؟

المحلول

لقد قدمت هذه إجابة جديدة لأنها مختلفة جذريًا.

يعتمد هذا على كريس بيشوب، التعلم الآلي والتعرف على الأنماط، الفصل الثاني "التوزيعات الاحتمالية" ص71++ و http://en.wikipedia.org/wiki/Beta_distribution.

أولاً، نقوم بتناسب توزيع بيتا مع المتوسط ​​والتباين المحددين من أجل إنشاء توزيع على المعلمات.ثم نعيد نمط التوزيع وهو المعلمة المتوقعة لمتغير برنولي.

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)

ومع ذلك، أنا متأكد تمامًا من أن المتوسط/التباين السابق لن يناسبك نظرًا لأنك تتخلص من المعلومات حول عدد العينات التي لديك ومدى جودة المتوسط ​​السابق.

بدلاً من:بالنظر إلى مجموعة من أزواج (صفحة الويب، الرابط الذي تم النقر عليه)، يمكنك حساب عدد الصفحات التي تم النقر فوق رابط معين عليها.ليكن ذلك م.اجعل عدد المرات التي لم يتم فيها النقر فوق هذا الرابط هو l.

الآن دع a يكون عدد النقرات على الرابط الجديد الخاص بك هو a وعدد الزيارات إلى الموقع يكون b.ثم احتمال الارتباط الجديد الخاص بك هو

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

والذي يبدو تافهًا جدًا ولكن في الواقع له أساس احتمالي صحيح.من منظور التنفيذ، يمكنك الحفاظ على m وl عالميًا.

نصائح أخرى

P/N صحيح بالفعل من منظور متكرر.

يمكنك أيضًا استخدام نهج بايزي لدمج المعرفة السابقة، ولكن نظرًا لأنه لا يبدو أنك تمتلك هذه المعرفة، أعتقد أن P/N هو الطريق الصحيح.

إذا أردت، يمكنك أيضًا استخدام قاعدة لابلاس التي ينحدر فيها iirc إلى شكل موحد مسبقًا.ما عليك سوى إعطاء كل رابط في الصفحة بداية بـ 1 بدلاً من 0.(لذا، إذا قمت بإحصاء عدد النقرات على الرابط، فامنح كل واحد منهم مكافأة 1+ وشبه ذلك في N الخاص بك.)

[تحديث] هنا نهج بايزي:

دع p(W) هو احتمال أن يكون الشخص في مجموعة معينة W.دع p(L) هو احتمال النقر فوق رابط معين.فإن الاحتمال الذي تبحث عنه هو p(L|W).بواسطة نظرية بايز، يمكنك حساب ذلك بواسطة

ص(L|W) = ص(W|L) * ص(L) / ص(W)

يمكنك تقدير p(L) بالمقدار الذي تم النقر عليه L، وp(W) بحجم تلك المجموعة فيما يتعلق ببقية المستخدمين وp(W|L) = p(W and L) / p(L) ) على عدد الأشخاص في المجموعة المحددة W التي نقرت على 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