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

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

Чат: https://t.iss.one/my_it_frogs
Download Telegram
Brrrrr 😆
Please open Telegram to view this post
VIEW IN TELEGRAM
33😁8😱51
Propensity Score. Как оценить эффект без стандартных A/B тестов.

Доклад от 😀, в котором говорится о том, как правильно измерять эффект при условии того, что мы раскатили фичу на всех (есть ограничения на проведения A/B теста)

Здесь освещаются основные моменты, связанные с Look-a-like, diff-n-diff, IPTW, как бороться со смещениями при оценке эффекта и др.

👍 Советую к просмотру, достаточно годно.

📚 Короткая статья на Хабре от Лида промо Сбермаркета про Propensity Score Matching

🕺 Если на посте наберется N реакций, постараюсь написать более подробно про это
Please open Telegram to view this post
VIEW IN TELEGRAM
3211🔥6👍1
DROP DATABASE CASCADE 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2512😭3🤡1🤝1
2️⃣0️⃣0️⃣0️⃣❗️

Ура! Мы сделали это. Спасибо, что продолжаете активно следить за каналом. Всех люблю 🙏

🦌 Скажите, что бы хотели видеть на канале в дальнейшем?

Возможно разбор заданий, материалы, которые я читаю, либо что-то для вката в IT. Очень интересен ваш фидбек!
Please open Telegram to view this post
VIEW IN TELEGRAM
186🔥5
такс, поступило предложение разбирать задачи с собесов, если наберется 100 (150?) реакций, будем качать эту тему 😁

Зовите друзей! Добьем 😑
Please open Telegram to view this post
VIEW IN TELEGRAM
141🔥3224👍9
Заскуль питона (Data Science)
такс, поступило предложение разбирать задачи с собесов, если наберется 100 (150?) реакций, будем качать эту тему 😁 Зовите друзей! Добьем 😑
🍔 Набрали > 100 реакций, спасибо, значит задачам с собесов и разборам быть.

Начнем с достаточно распространенной задачи. Представьте, что у вас есть игровой автомат, он выдает значение X и равномерного распределения [0, 1]. Игрок может забрать выигрыш после первого нажатия в качестве выигрыша, либо еще раз сыграть и забрать выигрыш последней попытки. Как нужно действовать игроку? Какое матожидание данной стратегии? Вариаций у задачи много, но в классической вариации она выглядит именно так.

Пишите, в комментариях рассуждения. Разбор будет через какой-то промежуток времени, пока не решил как выкладывать.
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥63
Если вы продакт-менеджеры и ДЕ и другие… пишите тут. Посчитаем вас также, а то обделили 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
😁111
Также вдруг, если есть желание, можете вступить в чатик, он же не просто так существует для комментов https://t.iss.one/my_it_frogs
💀🍔
Please open Telegram to view this post
VIEW IN TELEGRAM
48😁23👍6🔥4💯4💔21👨‍💻1
У академии аналитиков Авито есть в открытом доступе свой курс по прикладной статистике. Сам курс проходил, могу сказать, что для A/B тестов самое то, но нужно знать первый курс статистики про распределения, ЦПТ, ЗБЧ и проверку гипотез из статистики. Помимо этого, есть Python, на котором показывают как всё это применять на практике (про A/A тесты на исторических данных тоже было). Годная штука, которая позволяет наглядно показать как работают статкритерии и прочее.

Если проходили или слышали, отпишите. Ставьте реакции, если сделать подобную подборку хороший материалов.

UPD: осенью будет вторая часть по продвинутым методам, но могу уже на канале дать подспорье для успешного прохождения
🔥50128👍3
Как бы я сейчас построил свое обучение в продуктовой аналитике / аналитике данных?

👁 Если вы ждали этот пост, ставьте реакции, пишите комментарии. В следующем посте расскажу о своих планах на ближайший год

Всем привет! Сегодня напишу о том, что бы я изменил в своем обучении, если я бы вкатывался сейчас. Давайте перейдем к самому простому, как мне кажется, это стек. Базово на аналитика данных / аналитика предлагается следующее:

🐍 Python - для обработки данных, ETL-процессов, первичной визуализации, построения ML моделей, работа с тем же Spark / Hadoop для работы с большим объемом данных.
💻 SQL - работа с СУБД, по сути данные это наш хлеб. Любые логи, записи по пользователям / клиентам, различные фичи пользователей. По моему мнению, аналитик ОБЯЗАН уметь работать с SQL, без этого никуда. Поскольку первично если собирается неправильно получится следующее: garbage in garbage out
📊 Визуализация - бизнесу нужно интерпретировать данные в удобном формате, для этого используют дашборды. Это понятно + на основе них аналитик может понимать в удобном формате как можно генерить гипотезы. Для этого подойдут Superset, Yandex DataLens, Tableu, PowerBI, FineBI и др.

Что ж, с этим разобрались, базово это выглядит так, но если углубляться в мой стек, который я использовал в 💙 - это Gitlab, Hadoop, Airflow, SQL (ClickHouse, Vertica, MS SQL, PostgreSQL), Python, Superset.

Далее, все зависит от специфики. Если для вас достаточно быть ETL-разработчиком, можно остановиться на этом, владея базовым видением, но можно пойти дальше в сторону изучения продукта, различных тенденций и что самое главное понимания как ответить на главные вопросы бизнесу. Что мы делаем? Зачем мы это делаем? Как в будущем это отразиться на нас?

Сюда наслаивается и развитие продуктового мышления, и статистика с эконометрикой и ML, и A/B тесты, различные продвинутые методы и др.

К роадмапу (помните, что 🗯 ваш друг):

0. SQL - лучший бесплатный курс по SQL ever от 🔥. Если пользователь ClickHouse, можно документацию на русском глянуть, достаточно хорошо описано. Если пользователь Vertica 😬, то можно также документацию на английском

1. Про Python у меня был пост, можно глянуть тут

2. По визуализации можно зайти в соответствующие чаты и читать документацию. По Superset документация и соответствующий чат в телеграме. По Yandex DataLens есть курс от ❤️

3. Статистика и теория вероятностей. У ФЭН ВШЭ есть хороший курс с систематизацией того, как выводятся методы, которые мы привыкли видеть. Систематизация на уровне дисциплины без упрощения. Если вдруг оказалось сложным и непонятным, можно ВЕРХНЕУРОВНЕВО вернуться к любимому Анатолию Карпову и основам статистики на степике

4. Прикладная статистика, эконометрика, уход в АБ тесты и продвинутые методы. С курсом от ВШЭ (там кстати есть Python в блоке статистики) очень хорошо сочетаются следующие курсы: Прикладная статистика от МФТИ и ААА в открытом доступе (предыдущий пост). И также курс по эконометрике от ВШЭ от Бориса Демешева на R

4* Если вдруг предыдущий пункт оказывается непосильным, подрубаем ChatGPT, ведем конспектики и смотрим Глеба Михайлова с его практическим руководством к АБ + подкрепляем статьями на Хабр. Могу отдельным постом выложить какие статьи я читаю, для чего и т.д., как систематизирую знания.

4.1. Продвинутые методы A/B тестирования. Предыдущие посты были про любимый CUPED. Сюда наслаиваются еще и дельта-методы, стратификации, линеаризации, SPRT, VWE и др. Про это также будет отдельный пост.

5. Продуктовое мышление. Для прокачки этого можно посмотреть различные мок-интервью, чего очень много. Авито, видео. Продуктовые кейсы на собеседовании, иерархии метрик и так далее. Есть над чем подумать. Еще сюда

6. Работа с большими данными. Если вы дойдете до этого, то советую ознакомиться с документацией Spark, в частности работа с Pyspark (плейлист на YouTube) основы работы с Hadoop. Здесь вы поймете какие есть ограничения при работе, будете работать над ускорением расчетов, оптимизацией и другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
190🔥4220👍15🤯2😢2🍾2🦄2👾2🆒1
7. Основы ML. Что ж, дошли до этого этапа, значит есть потенциал, идем смотреть лекции Жени Соколова от ВШЭ и кайфуем от жизни. Достаточно все классно объяснено + подкреплено соответствующей практикой.

Если есть чего добавить или изменить пишите в комментариях. 120+ реакций и я рассказываю о дальнейших планах не в 💙. Упс, спойлеры подъехали!

UPD: Ещё по АБ тестированию есть очень крутой курс от я практикума.
https://practicum.yandex.ru/statistics-basic/
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥751511👍3👾2🆒1🦄1
Ладно, так уж и быть, можно сюда реакций тоже дать, если действительно хотите знать, куда я ухожу из 💙
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥943514👀4👍1
C’mon, bro. Bayesian stats… 👻
Please open Telegram to view this post
VIEW IN TELEGRAM
😁148👍4🔥1😢1
Заскуль питона (Data Science) pinned «Ладно, так уж и быть, можно сюда реакций тоже дать, если действительно хотите знать, куда я ухожу из 💙»
🤓 Нашел классный материал по Causal Inference и A/B тестам на просторах интернета на английском языке. В целом, есть примеры, формулки, можно самому что-то запрогать. Тут от обычной статистики до продвинутых методов, на досуге можно глянуть. Есть часть глав недописанных, например девятая, в остальном все гуд. К прочтению или ознакомлению советую. Как мне показалось, не совсем полно написано про Variance Reduction, хотелось бы видеть больше методов. Гайд 2021 года, но всеми любимый CUPED не забыли.
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥53🐳1🍓1🦄1👾1
VWE (Variance Weighted Estimator) - как еще один метод снижения дисперсии.

🚙 Зачем это нужно?

Мы хотим по-прежнему снизить дисперсию для преобразования метрики к более чувствительной. Как следствие - снижение длительности эксперимента.

💡 Основная идея

Дать пользователям с меньшей дисперсией метрики больший вес для снижения общей дисперсии эффекта.

🖥 Как реализовать?

Предположим, мы хотим оценить ARPU и применить к выручке на пользователя для того чтобы снизить дисперсию. Основная реализация заключается в том, что мы смотрим на то, как изменялась метрика в предпериоде и тем самым мы знаем ее дисперсию и как следствие вес. Затем, мы берем вес для метрики на пользователя, равный 1 / дисперсию, тем самым становится очевидно, что при больших дисперсиях вес становится меньше и затем рассчитываем среднее в группе A и группе B. Код который можно реализовать у себя ниже при сплите 50 / 50 с историей в 21 день (это также можно поресерчить, например, если у нас есть бОльшая история по пользователям, будет меньшее смещение, как мне кажется). Чем-то похоже на стратификацию, где каждой страте мы присваиваем вес, только здесь вес рассчитывается на истории пользователя:

import numpy as np
import pandas as pd

n_users = 1000
days = 21
pre_experiment_revenue = np.random.normal(loc=5, scale=2, size=(n_users, days))

control_group_revenue = np.random.normal(loc=5, scale=2, size=500)
treatment_group_revenue = np.random.normal(loc=5.5, scale=2, size=500)

pre_experiment_df = pd.DataFrame(pre_experiment_revenue, columns=[f'day_{i+1}' for i in range(days)])
pre_experiment_df['user_id'] = np.arange(n_users)

experiment_df = pd.DataFrame({
'user_id': np.arange(n_users),
'group': ['control'] * (n_users // 2) + ['treatment'] * (n_users - n_users // 2),
'revenue': np.concatenate([control_group_revenue, treatment_group_revenue])
})

data = pd.merge(experiment_df, pre_experiment_df, on='user_id')
data['user_variance'] = data[[f'day_{i+1}' for i in range(days)]].var(axis=1)
data['weight'] = 1 / data['user_variance']
data['weighted_revenue'] = data['revenue'] * data['weight']


👎 Минусы VWE:

Аномалии могут поломать оценку
Метод может быть чувствителен к аномальным значениям в предэкспериментальных данных, что может привести к некорректным оценкам весов

Необходима история по пользователям, должна быть богатая история по действиям, например, когда замеряем CTR
VWE требует значительного объема предэкспериментальных данных для точного расчета дисперсий и весов. В случае недостатка данных, результаты могут быть менее надежными

Может давать смещение
При расчете в оценке среднего мы можем получить небольшое смещение из-за перевзвешивания. Другая задача - это получение несмещенной оценки (например, как корректировка средним значением в преэкспериментальной группе при CUPED

Можно использовать с CUPED с уже перевзвешенными значениями. В статье от Facebook удалось добиться следующих результатов по снижению дисперсии в %.

CUPED only - 37,24%
VWE only - 17,31%
CUPED + VWE - 48,38%


На стратификации не смотрели, как я понимаю, но можно было бы еще, наверное снизить либо есть какие-то ограничения про которые я не знаю. А с Ratio-метрикой так вообще прикол: линеаризируем, VWE, CUPED, стратификацию

Этот метод еще освещался на Avito Analytics Meetup + был разбор статьи на YouTube

😉 Ставьте реакции, если пост был полезен, пишите комментарии. Дальше разберем стратификацию и линеаризиацию
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥73👍1🐳1🦄1👾1
Иван Максимов | 13 способов ускорить А/В тест, или "Не CUPED-ом единым"

Длительность видео: 52:13

Слишком годное видео, чтобы не делиться. 2 года назад в ODS Тимлид из Деливери рассказывал про 🆎. Тут и бакеты затронули и параллельные тесты, и линеаризацию метрик и другие трансформации.

Помимо этого затронут блок с проведением теста, пост-анализ, про сроки говорится и другое. Для того чтобы освежить в памяти, можно глянуть, зря время не потратите однозначно.

Ставьте реакции, пишите комментарии, все такое. А я пойду готовить пост о переходе в другую компанию 😐
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1697
This media is not supported in your browser
VIEW IN TELEGRAM
😠 вот ❤️

Всем привет! Да, я перехожу в Яндекс.Лавку продуктовым аналитиком, будет много рисерчей, исследований, A/B и прочего.

Хочу сказать спасибо команде в Ozon за предоставленную возможность развиваться, различные кейсы, сложности, очень ценю, всех люблю ❤️

Пока я был в Ozon, успел потрогать классные инструменты, переходить внутри команды между различными направлениями и было интересно всегда узнавать чего-то новое, быть полезным, сейчас я выбрал для себя другой трек развития.

Сейчас планирую отдохнуть от всей рабочей рутины, собраться с мыслями и выйти на новое рабочее место.

У меня были еще оферы, но решил отдать предпочтение именно ❤️ за потенциальную возможность роста, изучения чего-то нового и потенциального роста внутри компании. Конечно, как плюс, бейджик с 1000 рублями, приятно (не основной фактор 😬)

🍔 Ставьте реакции, пишите комментарии. Раньше, когда я переходил в 💙, оказывается, было очень много озончан, посмотрим сколько теперь тут яндексоидов 🦆
Please open Telegram to view this post
VIEW IN TELEGRAM
60👍18🔥84😱2🤡2👾21😁1🍓1😎1