Заскуль питона (Data Science)
6.18K subscribers
110 photos
15 videos
4 files
143 links
Канал про Python, Data Science, SQL и многое другое

По вопросам сотрудничества и рекламе: @m459n9

Чат: https://t.iss.one/my_it_frogs
Download Telegram
Хотите выйти за рамки простых SELECT? Или практики на реальных коммерческих задачах?

Приглашаем на практический вебинар с Александром Грудининым — Lead Data Analyst в AdTech Holding и ментором курса «Аналитик данных»!

На вебинаре мы не просто разберём синтаксис SQL — мы отработаем практические задачи из реального бизнеса и покажем, как превращать их в эффективные запросы.

⚡️Что будем разбирать:
🟠Как найти вторую по величине зарплату в отделе: чтобы HR понимал, какие компенсации предлагать.
🟠Рекурсия в SQL: например, как собрать полный список деталей велосипеда, включая все вложенные компоненты.
🟠Поиск «островов» в данных: например, периоды просрочки платежей клиента банка.
🟠Расчёт непрерывных последовательностей: сколько дней подряд пользователь смотрит кино без перерыва?
🟠Продвинутые оконные функции (поиск аномалий): как быстро выявить резкие скачки продаж в интернет-магазине.
🟠Сравнение данных через самоджойн: например, рекламные метрики за два месяца у одного клиента.


Кому будет полезно?
🟠Начинающим аналитикам, которые хотят выйти за рамки простых SELECT.
🟠Опытным специалистам, которым нужно решать нестандартные задачи.
🟠Всем, кто хочет писать эффективные запросы, а не просто знать синтаксис.


Если вы хотите прокачать навыки работы с SQL на примерах из реальных бизнес-задач — присоединяйтесь 19 августа в 19:00 (МСК), будет много практики и полезных инсайтов!

🕗 19 августа в 19:00 по МСК

😶Регистрируйтесь сейчас — вебинар будет максимально практическим!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43🤪11
Буквально 2 дня назад вышла статья Avito 🌍 по 🆎. Разбираем по шагам механику A/B-тестирования: математика, интуиция и код

Почитал, в целом могу сказать, что хорошее чтиво для разбора A/B тестов.

Обычно, я смотрю графически на то, как изменяется MDE (тут это написано в зависимости от длительности эксперимента), также смотрю и по количеству пользователей в эксперименте (10/10, 20/20 и тд), только равные группы пользователей.

🧑‍🎓 Теоретическое
def compare_mde(current_a, current_b, new_a, new_b):
return np.sqrt(1/current_a + 1/current_b) / np.sqrt(1/new_a + 1/new_b)

# здесь смотрят на то, а как изменится mde, если мы перейдем от 10/10 к 50/50 разбиению
compare_mde(0.1, 0.1, 0.5, 0.5) # ~2.236


💻 Практическое
def check_mde_reduce_from_size(grouped_dataset, current_t, current_c, new_t, new_c):
"""
Функция для сравнения MDE в текущем варианте сплитования и в новом.
Параметры:
- grouped_dataset: сгруппированный поюзерный датасет, на осоновании которого будут сравниваться MDE
- current_t: доля пользователей в тесте в текущем сетапе
- current_c: доля пользователей в контроле в текущем сетапе
- new_t: доля пользователей в тесте в новом сетапе
- new_c: доля пользователей в контроле в новом сетапе
Возвращает:
- отношение MDE_current / MDE_new
"""


grouped_dataset['group_current'] = np.random.choice(['test', 'control', '-'],
p=[current_t, current_c, 1 - current_c - current_t],
size=len(grouped_dataset))
grouped_dataset['group_new'] = np.random.choice(['test', 'control', '-'],
p=[new_t, new_c, 1 - new_t - new_c],
size=len(grouped_dataset))
metric = 'promotion_revenue'


test_curr = np.array(grouped_dataset[(grouped_dataset['group_current'] == 'test')][metric])
control_curr = np.array(grouped_dataset[(grouped_dataset['group_current'] == 'control')][metric])

test_new = np.array(grouped_dataset[(grouped_dataset['group_new'] == 'test')][metric])
control_new = np.array(grouped_dataset[(grouped_dataset['group_new'] == 'control')][metric])

MDE_current = get_relative_MDE(test_curr, control_curr, alpha=0.05, beta=0.2)
MDE_new = get_relative_MDE(test_new, control_new, alpha=0.05, beta=0.2)
return MDE_current / MDE_new


Из формулы MDE зачастую мы работаем с равными дисперсиями в выборкам, поэтому можно вынести из под корня константу в виде дисперсии и размера выборки, это вот тут.

Прикольно, что на практических сгенерированных примерах видно, что эти расчеты реально работают и можно использовать для реализации внутри компании, при дизайне / расчета A/B тестов.

Написано еще тут и про прокси-метрики, что их нужно выбирать в зависимости от каждого кейса, про оценку эффекта при переходе от обычной метрики к прокси-метрике, интерпретацию прокси-метрик

+ итоги правильной подготовки сетапа теста, где выбрали

а) сплит 50/50, а не 10/10
б) выбрали прокси-метрику, а не основную (которая обладает меньшей чувствительностью)
в) держать тест не 1, а 7 недель.

🔽 как результат, получили сокращение MDE в 9.2 раза!

Ну и дополнительно рассказали про контр-метрики, в очередной раз упомянули линеаризацию + доверительный интервал для оценки эффекта Ratio-метрик.

В целом, хорошая и ненапряжная статья, которую я вам советую прочитать, если хотите начать разбираться в A/B тестах + подметить для себя что-то новое)

Ставьте 🐳, если понравился пост, делитесь своими мыслями в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳27🔥75