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

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

Чат: https://t.me/my_it_frogs
Download Telegram
🆎 Демо платформы A/B тестов в Avito. Интересно реализовано, больше всего кайфанул от загруженности слоев при проведении экспа по разным разбивкам устройств. 5 минут и можно посмотреть, буквально свежая новость, к просмотру вэлком. https://www.youtube.com/watch?v=OppYNmYxCTg

Мое предложение все еще в силе: https://t.me/zasql_python/240
😴 Давайте в выходные отдыхать, закину вам пару интересных фактов, которые произошли с Яндексом за последнее время

1. Для тех, кто хотел посмотреть на то, как работает Яндекс 🍫 Лавка изнутри, у ❤️ вышел 2 недели назад пост про это, очень интересно было посмотреть

2. У Яндексоидов вышла папка с большим количеством каналов (я там есть, кстати), можно посмотреть изнутри, как кто живет, о чем пишут. Для себя подметил некоторые каналы. Первая картинка была взята отсюда

3. Появилась новая фича у Лавки в виде дозаказа 🤑

4. Недавно была презентация нового тикера YDEX. Уже доступен на Московской бирже

👍 А еще… У меня есть много всего интересного, про что можно рассказать. Ставьте реакции, пишите комментарии, что бы вы хотели видеть в дальнейшем
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💪 Ладно, закину еще сюда. 150 реакций здесь и будет пост про Causal Inference в аналитике!
Please open Telegram to view this post
VIEW IN TELEGRAM
Выезд клиентской аналитики Яндекс 🍫 Лавки в Сочи

🤗 Всем привет! Этот пост про то, как мы вместе с командой полетели в Сочи. Были продуктовые, маркетинговые аналитики и ресерчеры. В общем, объединили количественные и качественные исследования. Очень классная движуха, поскольку можно с разных сторон посмотреть на то, что происходит в Лавке.

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

🕵️‍♂️ Кстати, по одной из тем меня назначили фасилитатором. Цель - забрифовать людей по теме, дать вкратце понимание того, что происходит в определенном направлении бизнеса.

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

🙊 Кстати, еще у нас открыты вакансии, если хотите к нам, Одна из открытых вакансий в маркетинговую аналитику. А если хотите, чтобы я вас пореферил, кидайте резюме, что-нибудь придумаем

😊 А какая была ваша первая командировка? Делитесь об этом в комментариях, ставьте реакции!
Please open Telegram to view this post
VIEW IN TELEGRAM
22 🎉

Дальше - больше. Всем спасибо, что продолжаете и дальше смотреть за постами, я очень рад этому! Нас уже 3000, блин! С последнего поста про др уже х2 подписчиков 😊

Больше не смогу отправить в красивое время сообщение. Надо было в 11 лет постить…
Please open Telegram to view this post
VIEW IN TELEGRAM
Заскуль питона (Data Science)
У академии аналитиков Авито есть в открытом доступе свой курс по прикладной статистике. Сам курс проходил, могу сказать, что для A/B тестов самое то, но нужно знать первый курс статистики про распределения, ЦПТ, ЗБЧ и проверку гипотез из статистики. Помимо…
Всем доброй ночи! Увидел, что у Академии Аналитиков Авито вышла вторая часть курса по прикладной статистике. Кто-то уже успел посмотреть? Первая часть мне зашла, можно посмотреть на одном дыхании под lofi music, я считаю (ну почти). Тут поинтересней темы, интересно что скажут про критерий MW, будет ли что-то про модификации и другое, узнаю, отпишу (честно, не помню как они применяют его, нужны ли какие-то условия для выборки, в демо платформы A/B тестов не увидел)

P.S: Я никуда не ушел, через 3 дня заканчивается испытательный срок, все отпишу 😋

😡 - когда Максим не выпускал пост месяц, а ты ждал мем...

UPD: Если вы не смотрели первую часть, настоятельно рекомендую глянуть.

UPD2: Ссылочка: https://avito.tech/education/statistics (жаль, что на ютабчике, а не на рутубе офк)
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Градиентный спуск (ч. 1)

😔 Всем привет! Сегодня я бы хотел вам рассказать про то, что такое градиентный спуск и вообще для чего он применяется, в каких направлениях и для чего. Градиент отражает направление скорейшего возрастания функции

💳 Начнем с линейной ргерессии, для тех кто не помнит / не знает, уравнение прямой задается yi = wi * xi, где yi - значение целевого признака. Это конечно замечательно, но истинные значения (если мы живем в непрерывном пространстве будут всегда различаться от предсказанных (какая-то ошибка возникнет).

🍦 Решение задачи - минимизировать ошибки, возникаемые при изучении модели. Но как мы это можем сделать, если у нас xi, yi заданы? Правильно, повлиять как-то на веса признаков. Для линейной регрессии обычно используется такая функция потерь, как MSE, которую мы хотим минимизировать. Градиентный спуск позволяет найти веса модели, при которых ошибка будет минимальна (осторожно, модель может найти локальный / глобальный минимум). Мы хотим понять, при каких значения wi наше значение ошибки будет минимально. Почему берется MSE, могу рассказать в следующих частях

👌 У градиентного спуска есть 3 параметра:
1) начальная точка, в нашем контексте - это вектор весов признаков (выбираются случайно)
2) количество итераций, мы определяем заранее сколько итеративно нам нужно пройтись, чтобы прийти к точке, близкой к минимуму
3) коэффициент скорости обучения (Learning Rate). Если мы будем выбирать слишком маленький шаг, то можем за ограниченное количество итераций не прийти в точку минимума (функции потерь в нашем случае), а если Learning Rate будет слишком большим, то мы можем перепрыгнуть точку минимума.
4*) количество эпох и размер батчей - это используется для стохастического градиентного спуска.

в общем виде:

start_point = i
iterations = n
learning_rate = t

for _ in range(iterations):
start_point -= t * gradient(x)

start_point, func(start_point)

Это позволит нам найти минимум функции итерационно, в нашем контексте - функции потерь.

Игрушечный пример с градиентным спуском.


import numpy as np

def loss_function(x):
return x ** 2 * np.sin(x)

def gradient(x):
return 2 * x * np.sin(x) + x**2 * np.cos(x)

def gradient_descent(starting_point, learning_rate, num_iterations):
x = starting_point
for _ in range(num_iterations):
x -= learning_rate * gradient(x)
return x

starting_point = 3 # Начальная точка, выбирается случайно
learning_rate = 0.01 # Скорость обучения
num_iterations = 100 # Количество итераций

minimum = gradient_descent(starting_point, learning_rate, num_iterations)

В этом примере minimum = argmin(x), т.е. точка в которой достигается минимум функции, а соответствующее значение можно найти, если подставить значения в loss_function(minimum).

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

Где можно почитать подробней?

Учебник Яндекса (с формулками)
Статья на Хабр
Презентация от Александра Дьяконова

Если хотите больше постов, связанных с ML или около того, ставьте реакции, пишите комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
Это же гениально 😂

Ссылка на Reddit

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
Заскуль питона (Data Science)
💪 Ладно, закину еще сюда. 150 реакций здесь и будет пост про Causal Inference в аналитике!
Я не забыл, в процессе. Будет пост / посты на следующей неделе. До сих пор ждёте? 😮

Ставьте котика на реакцию 😱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Causal Inference (ч. 1)

Этот пост нужен для того, чтобы базово вникнуть для чего используется

Итак, Causal Inference - это процесс поиска причинно-следственных связей. Он позволяет нам понять, насколько X влияет на Y. В статье от X5 объясняются основные техники, позволяющие оценить эффект. Как правило, они могут основываться и на простых методах по типу линейной регрессии. Вообще практически все в нашем мире можно объяснить с помощью линейной регрессии (true fact).

Зачем нам это может нужно, если есть A/B тесты?

1) Хочется оценить эффект от фичи, которая работает длительное время. Например, нужно оценить эффект от раскатки нового варианта онбординга на пользователей с момента запуска.

2) Мы не контролируем формирование групп. Это может быть применимо к оффлайн-экспериментам.

3) Не можем провести эксперимент по различным причинам. Например, по техническим или этическим, когда тест нужно держать очень долго

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

🆎 Представляем, что мы хотели провести A/B тест, но по какой-то из причин, этого не сделали. Помните, в чем основная задача? Это определить будет ли значимым эффект при рандомном семплировании определенных групп. Проводя эксперимент в классическом понимании, мы имеем тест, контроль (на кого-то раскатили новый функционал, на кого-то нет), мы применяем. Далее, ссылаясь на то, что наблюдения независимые (или зависимые и мы применяем поправки), сравниваем группы, получаем эффект

В задачах Causal Inference может быть несколько вариантов решения задач.

1. Определить то, как ведет себя метрика на препериоде и оценить то, как после запуска воздействия поменялось поведение метрики (по сравнению с прогнозом). Например, Diff-n-diff или Causal Impact (Counterfactuals analysis)

2. В задачах, где у нас нет контроля, сопоставить пользователей по похожести и оценивать эффект так, как будто мы проводим тест. PSM, Instrumental variables и различные вариации (Квази-эксперименты)

Ставьте реакции, пишите комментарии. В следующих постах я опишу то, какие методы бывают более подробно и разберем более подробно то, как они работают.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💙 Яндекс Лавка. Что произошло за 6 месяцев?

Всем привет, хочу поделиться тем, что мы успели сделать за последние Q2-Q3 продуктовой командой. Несмотря на то, что я пришел ровно 4 месяца назад, видно, как продукт быстро растет, продуктово прорабатываются куча гипотез, а классные фичи до вас докатываются в самом лучшем виде. Здесь собраны очень сильные ребята из различных направлений, которые помогают вместе делать классный продукт

Теперь к главному:
Мы активно ищем сильных аналитиков, разработчиков, продактов, дизайнеров, чтобы расти быстрее, реализовывать самые бешеные и кайфовые идеи вместе.

Подборку вакансий прикреплю ниже, если появятся вопросы, пишите в личку @m459n9

💙 Вакансии в Лавке 💙

P.S. Следить за новостями Команды продукта Лавки теперь можно в Телеграме: @lavka_product_team. Присоединяйтесь! Давайте знакомиться ближе)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Используете ли вы трекеры времени для продуктивной работы? Если да, то какие? Сколько примерно вы потратили дней / месяцев / лет, чтобы их внедрить в свою жизнь? Чувствуете ли вы импакт от этого?

🍅 У части людей, например, внедрено для работы Pomodoro. Это когда ты бьешь рабочее время на короткие интервалы для работы и отдыха. Базовый вариант - это когда одна сессия выглядит следующим образом: 25 минут работаешь, 5 отдыхаешь. Требуется больше времени, чтобы быть в фокусе, хотя можно разбить на более длительные сессии. В этой статейке 70 минут работаешь, 20 минут отдыхаешь, 40 минут еще чил. Суммарно 10.5 часов на работу, 3.3 часов на отдых. Итог ~ 14 часов на сессии.

🧠Я склоняюсь в сторону Deep Work - это когда у тебя рабочая сессия длится несколько часов. Фокусированно сидишь над задачей / задачами без отвлечения. На каком-то из часов начинаешь замечать, что делать достаточно. Главное - это подготовить рабочее место, предварительно отключив раздражители, приготовиться к сессии и плотно сидеть и работать, deep work... А еще важнее, на первых этапах, вырабатывая привычку - НЕ ВСТАВАТЬ (очевидно, по каким-то делам / встречкам это делать не получится, но сессию в календаре под это дело забить можно или стремиться к этому). Если брать 4 часа на сессию, а сессий 3, получается 12 часов на сессии.

📖 Дополнительные материальчики для чтения:

🔗LINK 🔗
🔗LINK 🔗

Если вам нравится формат таких постов, ставьте реакции, пишите комментарии
Please open Telegram to view this post
VIEW IN TELEGRAM