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

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

Чат: https://t.iss.one/my_it_frogs
Download Telegram
Коллеги, всем привет! Пора подвести итоги этого года.

> поучаствовать в хакатоне и занять 8-е место из 250.
> создан канал и набрано 455 подписчиков, спасибо всем.
> пройдены различные курсы, админ за 6 месяцев успел практиковаться в аналитике.
Просмотрено:
SQL, Python, статистика, A/B тесты, PowerBI / Tableu / SuperSet, API, JSON.
> ВСЕ админы устроились на работку.

А вообще кто мы? Студенты 3-го курса РАНХиГС, которые поняли, что хотят поменять что-то в своей жизни. Мы изначально манагеры (в корочке это написано).

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

Планы на следующий год:
> Продуктовая аналитика, подтянуть A/B.
> ML, Deep Learning
> ШАД (посмотрим по загруженности).
> Еще админов, чтобы не было провала по времени в контенте.
> Возможно устроиться на стажку, посмотрим. Если захотим, будем скидывать всё то, что необходимо для подготовки.

Какие прогнозы на следующий год?
Всё также. Если вы думаете, что очень много нормальных аналитиков, Data Scientist'ов, ML'щиков в СНГ, это не правда, стремитесь быть лучше, всё будет классно.

Еще раз спасибо всем, вы заставляетесь двигаться вперед. Надеюсь, вы также находите отклик, просматривая материалы на канале. Дальше - больше!

Ждем ваших комментариев, чтобы понимать чего хотите от нас, обещаем, что в новый год все исполнится)

- Гляньте вот этот курс по SQL, это очень классный материал.

> Список материалов
Хэндбук от Яндекс по ML
Хэндбук от Яндекс по Python

Источник знаний - Google. Что-то не понимаете, гуглите (правило любого аналитика)

Телеграм канал - это наше общее детище, над которым мы работаем все ВМЕСТЕ, поэтому если у вас есть какие-то вопросы / желание помочь - пишите.

P.S: Админ не может погрязнуть в учебе
👍30🔥41
Я же выпускаю посты, где реакции?

P.S: угадайте, к чему подводка...

30 реакций и админ сядет за пост 😎
❤‍🔥24🐳8🤨5🔥4🤓31🥰1🤯1🍾1
… А дело в том, что я, видимо, не так распределил контрольные и тестовые группы.

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

Кажется, что знание этого, поможет вам устроиться на позицию продуктового аналитика. Кто это такой и вообще чем они занимаются, расскажу в следующем посте.

Начнём с вводных:

Теория вероятностей и математическая статистика.

- Закон больших чисел
- Понимание того, что случайные события можно свести к системе.
- Различные виды распределений. Что за распределение, его особенности, про это будет следующий пост.
- Математика: мода, медиана, математическое ожидание, дисперсия.

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

Вообще, какая основная задача A/B тестов? Это растить продукт за счёт проведения экспериментов с различными вариантами страницы, приложения и так далее. Понятно, что просто внедрить новую фичу в наш продукт не получится, поскольку это затратно по средствам и мы не понимаем, как пользователи могут отреагировать на данное нововведение. Таким образом, нам нужно на основе наших данных свести среднее значение метрики к среднему.

Как мы это можем сделать?

⁃ Доверительные интервалы.
⁃ Бесконечно симулировать эксперименты, чтобы в конечном счете получить среднее значение.
⁃ Использовать непараметрические методы при сравнении.

Что нужно для А/Б теста?
Сформулированная гипотеза
Нулевая гипотеза - то, что у нас есть в базисе. Например, что, после изменения показатели метрики не изменятся.

Альтернативная гипотеза - то, что мы хотим проверить. После изменения показатели метрики изменятся.

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

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

Ошибка первого рода - вероятность отклонить верную нулевую гипотезу (обычно 5%).

Ошибка второго рода - вероятность не
отклонить неверную нулевую гипотезу (обычно 20%).

Как запомнить? Вот, представьте, вы пришли со вспоротым животом в поликлинику, а, вместо того, чтобы прооперировать вас, врачи сказали, что все хорошо, можете идти домой (ошибка первого рода, мы отклонили верную нулевую гипотезу). Представьте, что вы пришли в больницу, узнать свой диагноз, а врачи там считают, что разрезать всех, а после, зашивать, это норма (ошибка второго рода, мы приняли неверную нулевую гипотезу) 🤔

О какой же метрике все это время идёт речь? Тот таргет, который мы проверяем. Это может быть CTR, показатель конверсии, средний чек и другое 🎯

Изучаемая метрика - после результатов проведения мы будем опираться либо на усреднённые данные этой метрики в каждой из групп, либо на другое, обобщающее число в выборке 💻

Время проведения - очень важная метрика, поскольку при первичном проведении, захочется увидеть статистически значимый результат, например, у нас все выполнилось, среднее во B группе, больше, чем среднее в A группе, поэтому останавливаем проведение

Минимальный ожидаемый эффект - прирост по метрике, который мы хотим получить при формулировании гипотезы 📈

Пример формулирования гипотезы: Изменение системы выдачи на сайте позволит увеличить показатель конверсии на 20%. Нулевая гипотеза: Ничего не изменится, средние в двух группах равны. Альтернативная гипотеза: Средние в двух группах не равны 😊

Друзья, я хочу выкатить исчерпывающие посты по A/B тестам, возможно, без ML. Поэтому, если у вас есть какие-то идеи про что написать, с чем вы сталкиваетесь на работе, пишите, буду рад почитать, оформим как рабочий кейс. Здесь главное, больше практики что ли 🏋️‍♀️
👍12🔥3
Понятно, что нужно учитывать статистику и без этого никак, поскольку изначально, вам может казаться, что если тот или иной показатель в двух группах отличается, например, среднее метрики, то этот вариант является успешней, чем другой.

Например, мы хотим понять, как изменение дизайна отразилось на пользователях. Взяли первую группу, не меняли ничего, получили, что из 100 пользователей 60 нравится сайт. В другой группе, мы поменяли дизайн, выбрали 10 человек, из них 7 сказали, что нравится. Казалось бы показатели 0,6 и 0,7, однако, не все так просто, потому что данные значения могли получится случайно. Это как бросить много раз монетку. Понятно, что вероятность выпадения 1/2 (это работает при большом количестве подбрасываний), однако, из 100 бросков может выпасть 90 орлов и 10 решек. Этот пример я рассмотрю в следующем посте.

Вторая часть не заставит себя долго ждать, если наберется достаточное количество реакций. Поговорим про распределения, p-value (критерий, определяющий значимость теста) и различных статистических методах по проверке гипотез, количество групп (оказывается можно запускать и A/B/n тестирование, но есть очень много подводных камней, квантили и другое (приближаемся к математике). Тренировочные датасеты будут, их можно найти на Kaggle, периодически буду выкладывать 🤩

Полезные материалы 🅰️🅱️

Карпов. Матстат
«Учебник» по A/B тестам, для ознакомления можно глянуть Ссылка
Как провести A/B тестирование
A/B testing [EN]
VK A/B testing [EN]

Пишите комментарии, ставьте реакции, буду ждать фидбека 😎
👍16🔥5
Первая моя гипотеза о том, что если все выкладывать одним постом, количество реакций будет больше. Как это проверить? Одновременно выпустить пост, но на разных каналах, причём, контрольные и тестовые группы не должны пересекаться…
👍5
Ладно, меня заставили отредактировать, ждите пост…

19.01.2023
😢8😱4😁1🤩1🤡1
Подводка была классная, новый тренд, что ли. Так вот, продолжаем, A/B тест не удался.

Зачем нам вообще все это? Стать топ продуктовым аналитиком (кем?). Тот, кто анализирует конкретный продукт, смотрит за определенными метриками, заставляет за основе данных принимать менеджменту конкретные решения.

Приступим к распределениям (нам нужно понимать специфику данных, что вообще с ними можно делать).
- Равномерное (плотность распределения = const, вероятность выпадения каждого элемента одинакова). Пример: бросание кости, угадывание числа от 1 до 1000.
- Бернулли (в качестве значения либо 1, либо 0). Пример: подбрасывание монеты (орел и решка), совершение целевого действия на сайте (либо да, либо нет, конверсия).
- Биномиальное (распределение количества успехов, т.е. привязка к количеству экспериментов из Бернулли).
- Нормальное (распределение, которое задается средним и стандартным отклонением (корнем из дисперсии), значением, показывающим то, насколько значения отклоняются от среднего значения. Большинство явлений можно объяснить, используя данное распределение. В экспериментах, желательно, все сводить к нормальным распределениям, сокращая дисперсию, логарифмируя переменные, симулируя много раз эксперимент. Пример: Рост, вес жителей РФ.
- Логнормальное распределение. Распределение с жирным хвостом, где большая часть данных сосредоточена слева, а может продолжаться до бесконечности. Например, средний чек покупателей в гипермаркете "Глобус". Средний чек сосредоточен слева, но имеются и семьи, которые закупаются на 20к+ за раз.
- Экспоненциальное распределение. Используется при анализе временных рядов. Время ожидания целевого действия, интервалы времени между событиями.

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

Окей, вроде бы первично понятно, что есть какие-то распределения, частота / вероятность каждого из событий с отложенными значениями. Вопрос, что дальше?

Для начала вернемся к предыдущему посту и посмотрим о чем рассказывалось ранее. Есть какое-то p-value, о котором админ обещал рассказать. Так вот. делюсь. Это вероятность получить такое же или более экстремальное значение. Условно, у нас проводится A/B тест, мы смотрим на разницу между средними значениями метрики в разных группах.
Мы можем получить. как отклонение по метрику в худшую сторону (левосторонний тест), в лучшую сторону (правосторонний тест) и в обе стороны (двусторонний тест). Симуляция разниц между средними поможет получить среднее значение. Говорят, что если p-value < alpha (ошибка первого рода), то мы отклоняем нулевую гипотезу. Вопрос, почему так?)

Задача: мы опросили 100 пользователей Ozon, 60 из них нравится дизайн нашего сайта. Наши дизайнеры провели тест с новым дизайном и из 10 человек, 8 выразили respect 🫡. Вопрос, можно ли выкатывать версию дизайнеров в продакт?

H0 - разницы между группами нет (CR1 = CR2)
H1 - разница между группами есть ( CR1 ≠ CR2)
Размер выборки: 100 + 10 = 110

Мы должны свести все к одному распределению.

CR (средн) = 68/110
Diff (CR) = 0,2
a = 0.05
B = 0,2
🔥8🤯3👍2🐳1
🐍 Пример симуляции в Python

import numpy as np
import pandas as pd
np.mean([np.random.binomial(1, 68/110, size = 10).mean() - np.random.binomial(1,68/110, size = 100).mean() >= 0.2 for i in range (10000)])
# output:
# p-value ~ 0,21, что больше, чем a(0,05), значит нулевую гипотезу не отвергаем.

P.S: для тестирований есть специальные калькуляторы, в которых вы можете также поиграться.

Распределение с вероятностями (весами), было тестовое задание в OZON с симуляцией данных и дальнейшего исследования.

🐲 Пример на Python для пяти элементов с соответствующими вероятностями pi

import numpy as np
list = np.arange(1,6)
sNumbers = np.random.choice(list, size = 1000, replace = True, p = [0.35, 0.25, 0.2, 0.15, 0.05])
pd.DataFrame(sNumbers).value_counts(normalize = True)

🤯
Проверка распределения на нормальность (необходимо для корректности расчета разницы между распределениями):
- тест Шапиро-уилка
- QQ-plot
- Критерий Лиллифорса
- Критерий хи-квадрат Пирсона

📖 Полезные материалы:

Калькулятор для A/B
Ещё один калькулятор
Про распределения

❗️ Настоятельно рекомендую смотреть открытые лекции Яндекса по A/B тестам + Матемаркетинг на Youtube, очень много всего. От понижения дисперсий (про это поговорим дальше) до множественного A/B тестирования и сокращения времени проведения A/B тестов в несколько сотен раз!
14👎1🐳1
Распределения, рассмотренные в посте выше 🐲
👍14🌚21👎1🐳1
🐲: Коллеги, поставьте реакции, чтобы была мотивашка выпускать посты про A/B и добить их наконец-то...
🔥31❤‍🔥82🐳2🗿2🌚1
Ну что ж, третьему посту по A/B быть 😘

Пока лягушонок пишет про материалы, накидайте реакций 🗒

А то.. админ уйдёт в небытие 😡
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓15👍2💩2🔥1
1️⃣ Первая часть материалов по A/B тестам

Лягушонок вернулся, чтобы поделиться с вами полезными материалами 🚶

Время постов про A/B тесты настало, пора погрузиться что ли с ног до головы, просматривая занимательные статьи, лекции и видосики. Так, в прошлых постах упоминалось про вводные моменты, но не было материалов по A/B в таком количестве, чтобы можно было сделать какие-то выжимки, но админ постарался этот момент решить 🗒

Здесь должна быть интеграция по типу:

🔥 мои кореша из карпов.курсес 🔥

Про проблемы подглядывания 😳
Мы всегда хотим, чтобы наше значение p-value было меньше ошибки первого рода, поэтому если по ходу эксперимента мы будем сидеть и смотреть за своими наблюдениями по дням, увидим стат. значимость и решим отключить A/B тест, склонившись в пользу тестовой группы, мы будем не правы.
link

Как и зачем оценивать размер выборки?
Освежить в памяти про мат. стат, понять, какие ошибки могут возникнуть при интерпретации результатов при A/B тесте
link

A/B тесты с метриками-отношениями и при чём здесь внутрипользовательские корреляции
На примере CTR показывается то, как мерить результаты экспериментов на примере t-test, Poisson bootstrap. Основные нюансы с метриками, показателями на примере Python.
link

Никита Маршалкин: А/Б тесты сложнее, чем кажется | Интервью
Тут деловой человек из 📱 рассказывает про то, как проводят A/B тесты, системы сплитования, проверку гипотез и много всего.
link

😀 Как же без моей любимой Яшки 😀

A/B тесты как способ развития продукта ☀️
Лекция про A/B, здесь можно глянуть основные метрики, как оценивать статистическую значимость.
link

Как провести A/B-тестирование: 6 простых шагов
Вводная по A/B тестам в виде короткой статьи, новичкам будет полезно.
link

Эффективное А Б тестирование - Виталий Полшков
Опять про Ratio-метрики (как CTR), ошибку дисбаланса классов при A/B, на основе которой мы можем принимать неправильные решения.
link

Как повысить чувствительность метрик - Илья Кацев
Доклад про то, как работает перевзвешивание в Яндексе, размножение списков, домножение на корень...
link

Советую подписаться на каналы 😀 по разработке, школы менеджеров, они лежат в открытом доступе и требуют вашего внимания
link_1
link_2

Друзья, стоит также упомянуть и про Experiment Fest (expf), с которыми сотрудничают 🔥, там очень много митов с разными компаниями, можно много для себя чего найти
link

Если вам такой формат постов зашел, жмакайте на реакции и вторая часть материалов не заставит себя долго ждать 🚶‍♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🐳42🔥1🍌1👨‍💻1
Вау, нас уже 500. Идём к следующему рубежу.

Сегодня поделюсь второй частью материалов по A/B и стате, вам понравится 🎲

Накидайте реакций пожилому лягушонку на этот пост 🎧
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍62
2️⃣ Вторая часть материалов по A/B тестам, первую можете глянуть туть

Про основные моменты по теории инфа туть и туть, а теперь к материалам.

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1
Разбиение выборок, основные определения, прокрас теста, t-test
, Манн-Уитни, A/A тесты, работа с метриками
link

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 2
Методы увеличения показателей, время проведения эксперимента, CUPED, Bootstrap, доверительные интервалы
link

Как устроено A/B тестирование в Авито 🥤
Этапы A/B тестов, основные сложности, дизайн, Ratio-метрики, визуализация
link

Матстат и питон
Препод вышки объясняет математическими симуляциями про ошибки, метрики, эффекты, на досуге можно глянуть.
Спойлер: Подойдет тем, у кого есть база по стате ну или тем, кто готовился к шаду 🛌
link

Computer Science Center
Очень много полезной инфы, лишним не будет
link

А теперь эксклюзивчик 🥇

У 🏦 есть много классных курсов, куда обычно сложно попасть, поскольку конкурс космический. Однако, полезное, что-то из этого могло получиться. Раз в какой-то промежуток времени становится доступен курс от тиньки по анализу данных в индустрии. Чтобы вам не приходилось ждать следующего потока, предлагаю сразу просмотреть основные моменты по Python.
link

Если вас и это не остановит, можете попробовать пройти курс для школьников от того же банка. Сертификат + тонус (но по уровню не очень жестко).
link

Ну, ладно, ладно. У 📦 будет митап 25-го числа по A/B тестам, можно зарегаться и прийти как онлайн, так и офлайн (18:00) в сити. Линк на регистрацию ниже.
link

Есть еще много полезных материалов, накидайте реакций и будет еще один пост по ним ⌚️

Пишите в комментариях, что бы вы бы хотели увидеть, а на этом всё. Админ пошел отдыхать 🚶‍♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥7
Channel name was changed to «Заскуль питона (DA/DS/ML) 🐸»
💞 Вы проделали хорошую работу по A/B тестам, давайте отдохнем и переключимся с A/B на SQL. Знание основных моментов позволит вам приблизиться к заветному офферу аналитика. Хотя, работа аналитика заключается не только в написании запросов SQL, хотя это тоже очень классно уметь.

В основном, предстоит работать с SELECT и писать запросы в уже существующую базу данных (ClickHouse, Oracle, PostgreSQL и др.). Сам по себе SQL несложный, но для перехода в IT-индустрию он нужен, как ни крути.

🍪🍪 Что спрашивают обычно на собеседованиях или что спрашивали меня?
> что будет, если заджойнить 2 таблицы, сколько строк выведет?
> какой запрос вернет большее количество строк?
> какими способами можно удалить дубликаты в таблице? (Спойлер: больше трёх)
> синтаксис, какие операции выполняются в начале. Может быть огорчу кого-то, SELECT в конце.
> решить продуктовую задачу, определить n-day Reteniton и другое.

💡 Если у вас есть какие-то проблемы с этим, советую ознакомиться с источниками, которые прикреплю ниже по степени приоритезации.
> 🔥 симулятор SQL от karpov.courses - все структурированно, хорошие лекции и задачи. С 30 января будут доступны продуктовые задачи (по типу расчета Churn Rate, Retention, возможно) + можно попрактиковаться в Redash. Визуализация + запросы.
> доисторический тренажер, советуют в том числе и крупные компании, такие как 🏦. Много разных задач, после прохождения будете щелкать задачки на раз-два.
> тренажер на stepik. В свое время он помог структурировать знания и попрактиковаться. Спойлер: оконных функций нет, что печально.
> sql-academy. Много задач, наткнулся по советам 📦, когда готовился к стажке.

Когда вы прошерстите хотя бы первые два. Поймете про подзапросы, группировки, JOIN и оконные функции, можно приступать к решению задач с собесов крупных компаний.
> itresume - задачи отфильтрованы по сложности, можно выбрать для себя некоторые и порешать, например в альфу. Доступ к премиуму можно получить за приглашение друга, надеюсь, вы знаете как это можно заабузить.
> stratascratch [EN] - 500+ interview coding questions (Facebook, Google, Microsoft, twitch).
> datalemur [EN] - то же, что и stratascratch, можно встретить другие задачи.

Накидайте 40 реакций на пост и выйдет следующая часть по A/B тестам, если вы, конечно же, этого хотите 😡
Please open Telegram to view this post
VIEW IN TELEGRAM
32🐳7👍4🔥2