ПочатиПочніть безкоштовно

Послідовність реєстрації

Тепер змоделюємо процес генерування даних (DGP) для показу eCommerce-реклами, починаючи з реєстрацій.

Упродовж будь-якого дня ми маємо багато показів реклами, які можна змоделювати як випадкові величини Пуассона. Відомо, що \(\lambda\) має нормальний розподіл із середнім 100 тис. відвідувачів і стандартним відхиленням 2000.

Під час шляху до реєстрації користувач бачить оголошення, вирішує, натискати чи ні, а потім — реєструватися чи ні. Отже, і кліки, і реєстрації — бінарні події, змодельовані за допомогою біноміальних випадкових величин. А як щодо імовірності успіху \(p\)? Наша поточна бюджетна опція дає click-through rate 1% і sign-up rate 20%. Дорожча опція може підвищити показники кликабельності та реєстрації до 20%, але ми не знаємо точний рівень покращення, тому моделюємо його як рівномірну випадкову величину.

Ця вправа є частиною курсу

Статистичне моделювання в Python

Переглянути курс

Інструкції до вправи

  • Ініціалізуйте словники ct_rate і su_rate так, щоб значення high були рівномірно розподілені між значенням low і \(1.2 \times\) значенням low.
  • Змоделюйте impressions як пуассонівську випадкову величину із середнім значенням lam.
  • Змоделюйте clicks і signups як біноміальні випадкові величини, де n — це impressions та clicks, а p — відповідно ct_rate[cost] і su_rate[cost].
  • Далі виведіть змодельовану кількість реєстрацій для опції з вартістю 'high'.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Initialize click-through rate and signup rate dictionaries
ct_rate = {'low':0.01, 'high':np.random.uniform(low=0.01, high=1.2*0.01)}
su_rate = {'low':0.2, 'high':____(low=0.2, high=1.2*____)}

def get_signups(cost, ct_rate, su_rate, sims):
    lam = np.random.normal(loc=100000, scale=2000, size=sims)
    # Simulate impressions(poisson), clicks(binomial) and signups(binomial)
    impressions = ____
    clicks = ____
    signups = ____
    return signups

print("Simulated Signups = {}".format(get_signups('high', ct_rate, su_rate, 1)))
Редагувати та запускати код