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

Створення функції сегментації для A/B‑тесту

У попередньому уроці ви побачили, що ваш експеримент із персоналізацією має високу статистичну значущість. Однак під час запуску експериментів важливо перевіряти, як нові функції впливають на конкретні демографічні групи. Іноді те, що дуже подобається одній групі, менш привабливе для іншої.

Оскільки ви хочете неодноразово сегментувати дані, ви створите функцію ab_segmentation(), яка аналізуватиме вплив ваших A/B‑тестів на сегменти даних і яку можна буде повторно використовувати щоразу, коли потрібно провести подібний аналіз.

Ваша функція прийматиме назву стовпця та проходитиме по кожному унікальному значенню в цьому стовпці, обчислюючи приріст (lift) і статистичну значущість.

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

Аналіз маркетингових кампаній у pandas

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

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

  • Створіть цикл for у нашій функції ab_segmentation(), який проходитиме по кожному унікальному значенню в назві стовпця segment, введеній користувачем.
  • Відійміть (ізолюйте) рядки в marketing, де маркетинговий канал дорівнює 'Email', а введений користувачем стовпець segment дорівнює subsegment.
  • Виведіть результати функцій lift() і stats.ttest_ind().

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

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

def ab_segmentation(segment):
  # Build a for loop for each subsegment in marketing
  for subsegment in ____:
      print(subsegment)
      
      # Limit marketing to email and subsegment
      email = marketing[(marketing['marketing_channel'] == ____) & (marketing[segment] == ____)]

      subscribers = email.groupby(['user_id', 'variant'])['converted'].max()
      subscribers = pd.DataFrame(subscribers.unstack(level=1)) 
      control = subscribers['control'].dropna().astype(float)
      personalization = subscribers['personalization'].dropna().astype(float)

      print('lift:', ____) 
      print('t-statistic:', ____, '\n\n')
Редагувати та запускати код