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

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

Чат: https://t.iss.one/my_it_frogs
Download Telegram
Ладно, меня заставили отредактировать, ждите пост…

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
⚽️ Следующий пост будет про Excel, для стажёров маст-хев.

Ставьте 👍🏽, чтобы пост вышел быстрее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53💩3
Всем привет, как и обещал, пост про Excel

Вообще, приходится сталкиваться с работой в нём, но самое главное, что обычно взаимодействие с ним выглядит для стажёров 💼 следующим образом:
> выгрузи данные из БД.
> сформируй дешборд, сводную таблицу.
> сделай выводы.

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

✏️ Важно:
> понимать то, для чего делаются те или иные функции.
> быстро и правильно проводить вычисления.
> уметь найти ошибку в формуле.

🎩 Основные функции, которые применяются на работе и которые были на стажке 📦:
>
ВПР, ГПР - по сути тот же JOIN, который мы используем в SQL (более подробно по SQL можно глянуть туть).
документация
> ЕСЛИ - условие, по которому мы определяем соответствие значения. Условно, если элемент такой, выведи одно, иначе - другое.
документация
> СЧЁТЕСЛИ, СУММЕСЛИ - складывают / считают значения при каком-то условии. Например, нам из таблиц по странам нужно вывести объем продаж по России.
документация
> СЦЕП / СЦЕПИТЬ - та же функция CONCAT (объединяет строки).
документация
> ИНДЕКС в сочетании с ПОИСКПОЗ. Суть заключается в том, что такой синтаксис позволяет джойнить по нескольким столбцам. Например, из таблицы с объемом продаж по странам у нас есть также города. Нужно вывести объем продаж по конкретному городу (при условии того, что названия городов могут повторятся в разных странах).
почитать можно тут

🫣 Конечно, это не весь список, но работодатели хотят видеть именно то, что вы умеете работать с данными функциями и понимаете для чего они нужны. Также стоит отметить, что все не ограничивается формулами, есть также и визуализация, форматирование и др. Про вещи, связанные с закреплением строк, типичных операций по типу СУММ, СУММПРОИЗВ и др. здесь не будет. Если рассматриваете Excel с нуля, советую глянуть следующие материалы.

> курс от Яндекс по Excel
> курс от Альфы - сводные таблицы, группировки данных и многое другое

➡️ Тестовые датасеты можно посмотреть на kaggle, можно выгрузить в csv, запихнуть в Excel и покрутить на реальных данных, попробовать сделать дешборд, сводные таблицы.

[EN] Можно глянуть crash-course по Excel на английском языке (6 часов), если дойдут у вас руки. Ссылка тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🐳42🤮1🥱1
💼 Почему ходить на собеседования важно?

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

📈 Очевидно, это получение более сочного оффера. Это само собой, вопрос о самореализации.

Но основная цель заключается не в этом.

🫣 Когда я только начал погружаться в IT, аналитику, хотелось устроиться на место, где буду решать классные задачи, грейдиться в профессиональном плане.

Сейчас это мне нужно для того, чтобы:

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

Например:
🏦 - преимущественно офис 5/2, 2-3 этапа.
🏦 - берут людей из вышки, бомонки, мгу, мфти, остальные не попадают под ключевики. Если попали, повезло.
📦 - перешли на SuperSet (BI-система), поэтому можно для себя глянуть этот инструмент и владеть им.
📱 - 4 этапа, классика практически на любой вакансии.
📱 - отдельные структуры придерживаются таких же этапов , что и Яндекс, поскольку вышли относительно недавно.

😱 Раньше было очень страшно общаться с HR, рекрутерами, однако, сейчас чувствуешь себя более расслаблено и нет какой-то тревоги.

Вывод:

Ходите на собеседования и не бойтесь HR, они не откусят вам голову

Накидайте 🐳, если вам понравился такого рода пост, всем продуктивных выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳73🔥43👨‍💻2👍1🤮1
Ура, нас уже 600, я в шоке! 💼

Спасибо, что продолжаете следить за новостями, именно вы заставляете писать посты, придумывать что-то новое, делиться опытом. Всех люблю 🐸
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳206🔥3🤩1🌭1💅1
Как перестать бесконечно учиться и получить заветный оффер?

Согласитесь
, у вас было такое, что продолжали решать типичные задачи с различных тренажеров, видео, слитых или нет курсов, в надежде на то, что это повлияет на вас как-то профессионально (больше опыта, навыков, работодатели точно оторвут с руками и непонятно где потолок). 🤵

😣 Боюсь вас обрадовать или огорчить, постоянное обучение без практики - не есть хорошо, а вы, не будучи уверенными в себе, попадаете в ловушку бесконечной учебы и не понимаете, когда же настанет тот момент, когда вы станете топ-специалистом. Спойлер: только практика. Но как это делать правильно, чтобы все-таки получить оффер и понять с какими задачами предстоит столкнуться?

😌 В мире Data Science существует большое множество теории, но охватить всё невозможно. Единственный вариант - в один момент себе сказать: "Пора работать, я знаю достаточно!" Да, звучит весьма специфично, что-то в роде инфоцыганства. Однако, кто знает, что вы хотите устроиться на работу? Только вы!

Лишь походив по собесам, я понял где находится потолок на каждой из вакансий (по знаниям, которые вы в теории можете получить). От привычного SQL, Python, EDA, тервера и статы до ML, анализа текстов и др. Прикольно понимать то, что вам нужно подтянуть под конкретную компанию. Первое время стараешься угнаться за оффером, а потом ходишь и подтягиваешь то, что у тебя не получается.

🍪🍪 Например, как было у меня:

Одним из моих первых собесов был 📱 на позицию Product Analyst. Меня попросили рассчитать Retention 5-го дня в SQL (на то время, я не знал, как сделать это корректно). И начиная с этого собеса я начал копать в сторону продуктовых метрик и их расчета. В 📦 на Middle Product Analyst дали тестовое задание с генерацией распределений и расчетом метрик, понял, что это важно (например, для A/B тестов). Ещё в 🏦🏦 понял, что нужно копать в сторону статистики и знаете, даже как-то подсел на подобного рода вещи.

Я не говорю про тех, кто сейчас усердно работает и подтягивает знания из разных отраслей, те же миты, встречи, курсы, это всё ок. Речь идет про тех, кто не может остановиться учиться и не понимает где же потолок. Выяснить это можно, общаясь с тимлидами, HR, раскидывая резюме как на hh, careerspace, jobby, так и на сайтах компании работодателя 🥂

Но что же делать человеку без опыта и как перестать получать 100% отказы?

Если на посте наберется 100 🐳, расскажу про это более подробно.

P.S: Админу нужно время
🎩
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳187👍10👎21👨‍💻1