Симулейтив
описание
Мы — образовательная платформа в сфере аналитики Симулейтив: simulative.ru Создаём курсы-симуляторы, где обучаем на кейсах из реального бизнеса. Канал по ML: @modprod Наш уютный чат: @itresume_chat Поддержка: @simulative_support
7 391
подписчиков
Охват к подписчикам
10,1%
ERR
Реакции к просмотрам
1,27%
378 на 31 постов
Пересылки к просмотрам
0,90%
268
Постов в день
1,1
всего 31
Где отзываются чаще
доля реакций к просмотрам- 14 авг.Меняем логотип? 🔥 — да 👍 — старый лучше ❤️ — лучше на русском13,20%
- 15 авг.без подписи4,00%
- 13 авг.Булевы флаги через ::int: один трюк, шесть применений Всем привет! На связи Александр Грудинин, ментор профессии «Аналитик данных» 👋🏻 В учебниках мы часто видим, как условную логику реализуют через CASE WHEN ... THEN 1 ELSE 0 END. В боевых запросах то же пишут короче: условие в скобках и приведение к числу. В PostgreSQL любое сравнение это булево значение, а TRUE::int = 1, FALSE::int = 0: (status = 'active')::int AS is_active, ((age > 18) AND (verified = true))::int AS is_adult_verified Это читается как бизнес-правило. Но короткая запись — это только верхушка айсберга. Настоящая сила в том, что флаг — это число, а числа можно суммировать, усреднять, брать максимум и умножать. Каждая операция даёт отдельный приём. 💡 Флаг существования после LEFT JOIN После LEFT JOIN непарные строки получают NULL в колонках правой таблицы. Проверка на NULL, свёрнутая во флаг, отвечает на вопрос «есть ли связанная запись»: (o.order_id IS NOT NULL)::int AS has_order Дальше has_order работает и как фильтр, и как метрика: «сколько клиентов с заказом» — просто SUM(has_order). 💡 SUM(флаг) — счётчик, AVG(флаг) — доля Раз флаг — это 0 или 1, агрегаты читаются напрямую: SUM(is_active) -- сколько активных строк AVG(is_active) -- доля активных (готовый процент) COUNT(*) - SUM(has_order) -- сколько клиентов без заказа Один проход по таблице вместо трёх запросов с разными WHERE. 💡 MAX(флаг) по группе — «случалось ли хоть раз» Если внутри группы флаг хоть в одной строке равен 1, то MAX по группе тоже даст 1. То есть MAX(флаг) отвечает на вопрос «было ли такое хотя бы раз»: SELECT user_id, MAX((amount > 1000)::int) AS had_big_purchase FROM orders GROUP BY user_id Читается так: «у пользователя был хотя бы один заказ дороже 1000». Без трюка пришлось бы писать самоджойн или коррелированный подзапрос. Симметрично работает MIN(флаг) = 1 — «условие выполнилось во всех строках группы». Ставьте 🔥, если было полезно! 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS2,67%
- 5 авг.💻 Острова и промежутки в SQL Всем привет! На связи Александр Грудинин, ментор профессии «Аналитик данных» 👋🏻 Разберём приём в SQL, который порой выглядит как магия, а держится на простой арифметике. Называется islands and gaps, «острова и промежутки». ✅ Задача Найти пользователей, которые заходили в сервис 5 и более дней подряд. Как только начинаешь думать про «подряд», в голове каша из «оконок» и самосоединений. А решается всё элегантно. ✅ В чём фокус Вот как выглядят даты входов одного пользователя. Заходил 3, 4, 5, 6, 7 января, потом пропал, вернулся 9 и 10: 2024-01-03 ← остров 1 2024-01-04 2024-01-05 2024-01-06 2024-01-07 2024-01-09 ← остров 2 2024-01-10 Глазами острова видно сразу: первый на пять дней, второй на два. А как объяснить это SQL? Хитрость такая: пронумеруем даты по порядку и вычтем номер из даты. Пока дни идут подряд, эта разность постоянна. Появился пропуск между 7 и 9 января: номер продолжает расти на 1, а дата скакнула на 3, разность подскочила и начался новый остров. Эта константа и есть идентификатор группы. ✅ Решение with base as ( select user_id, login_ts::date as login_dt -- берём дату без времени: 10 входов за день это один день from user_logins group by 1, 2 -- схлопываем до одной строки на пользователя и день ), grps as ( select user_id, login_dt, row_number() over(partition by user_id order by login_dt) as rn, login_dt - row_number() over(partition by user_id order by login_dt)::int as grp from base ) select user_id, count(login_dt) as cnt from grps group by user_id, grp having count(login_dt) >= 5 Три шага. Первый: схлопываем таймстемпы до дат через group by, потому что может быть десять входов за день это всё равно один день. Второй: нумеруем дни и вычитаем номер из даты, получаем grp, идентификатор острова. Третий: группируем по пользователю и острову, оставляем серии от 5 дней. Пример на PostgreSQL, в разных диалектах арифметика с датами устроена по-своему, так что вычитание номера из даты придётся адаптировать под ClickHouse, BigQuery и прочие. Ставьте 🔥, если полезно! 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS2,56%
- 09:04💻💻💻💻💻 Data science на практике: решаем задачу и оформляем проект в портфолио Вы решили попробовать себя в data science — что делать дальше? На вебинаре с Марией Жаровой вы пройдёте путь, который проходит дата-сайентист над реальной задачей — от постановки до готового проекта в портфолио: ➖ Возьмём финальное задание из бесплатного курса по ML и разберём, как подойти к нему самостоятельно; ➖ Обучим несколько моделей из sklearn, попробуем нестандартные подходы и выберем лучший вариант; ➖ Оформим ноутбук в полноценный проект на GitHub и разберём, что обязательно должно быть в README.md, чтобы проект выглядел сильным в портфолио. 👩🏻💻 Спикер: Мария Жарова, ML-инженер в команде рекомендаций Wildberries и ментор курса Симулейтив «Дата-сайентист» 📆 Когда: 18 августа, 19:00 МСК ➡️ Поставить напоминание в календарь 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS2,26%
- 14 авг.💻💻💻💻💻 Дата-инженер: почему без него данные бесполезны Данных с каждым годом действительно больше: логи, API, груды неструктурированных файлов. Но сами по себе они бизнесу не помогают, пока кто-то не соберёт из этого хаоса чистые таблицы в едином хранилище, на которые можно опереться. 15 августа вместе с Юрием Ламиховым разберём, что за профессия инженер данных, и сразу проверим это на практике: соберём рабочий пайплайн в Airflow. На вебинаре вы: ➡️ Разберётесь, чем дата-инженер отличается от дата-сайентиста и аналитика — и почему без него данные остаются просто цифрами; ➡️ Познакомитесь с ETL/ELT, отказоустойчивостью и тем, как инженер следит за качеством данных; ➡️ В live coding с нуля соберёте DAG — пайплайн, который каждый день сам забирает курс валют через API и сохраняет его; ➡️ Узнаете, с чего начинать путь в дата-инженеры и куда расти дальше. 🧑🏻💻 Спикер: Юрий Ламихов, дата-инженер в Wildberries 📆 Когда: 15 августа, 14:00 МСК ➡️ Поставить напоминание в календарь 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS1,81%
- 10 авг.#проанализировали_и_поняли1,81%
- 3 авг.#проанализировали_и_поняли1,73%
- 17 авг.#проанализировали_и_поняли1,49%
- 31 июл.Доверительный интервал: то, что прячет p-value Всем привет! На связи Александр Грудинин, ментор профессии «Аналитик данных» 👋🏻 Представьте: мы проводим A/B-тест страницы оплаты — контроль 5.00%, тест 5.45%, по 20 000 юзеров, p = 0.043. Значимо, катим. Продакт: «Сколько денег принесёт?» p-value на это не отвечает: он умеет только сказать, похожа ли разница на случайный шум. Размера эффекта и точности в этом числе нет. Отвечает доверительный интервал — диапазон эффекта, совместимый с данными. Считаем на Python: import numpy as np from scipy import stats n_a, conv_a = 20_000, 1000 # контроль: 5.00% n_b, conv_b = 20_000, 1090 # тест: 5.45% p_a, p_b = conv_a / n_a, conv_b / n_b diff = p_b - p_a # точечная оценка: 0.45 п.п. # стандартная ошибка разницы двух долей se = np.sqrt(p_a*(1-p_a)/n_a + p_b*(1-p_b)/n_b) # p-value двустороннего z-теста z = diff / se p_value = 2 * stats.norm.sf(abs(z)) print(f"p-value: {p_value:.3f}") # 0.043 # 95% доверительный интервал lo, hi = diff - 1.96*se, diff + 1.96*se print(f"ДИ: [{lo*100:.2f}; {hi*100:.2f}] п.п.") # [0.01; 0.89] п.п. # то же самое в деньгах users, value = 500_000, 3_000 # юзеров/мес, ₽ с конверсии print(f"от {lo*users*value/1e6:.1f} до {hi*users*value/1e6:.1f} млн ₽/мес") # от 0.2 до 13.3 млн ₽/мес То же p = 0.043 разворачивается в +0.01…+0.89 п.п., или от 0.2 до 13.3 млн ₽/мес при точечной оценке 6.75 млн. Обещать продакту 6.75, когда данные допускают 0.2, — легкомысленно. Обратная ошибка не лучше: «не значимо» ≠ «эффекта нет». Если интервал накрывает и ноль, и ценный эффект — не хватило выборки, а не эффекта. Что делать: в каждом отчёте держите интервал рядом с p-value — в процентных пунктах и в деньгах. p-value говорит только, случайна ли разница; интервал показывает, на сколько она тянет. Результат значим — планируй по нижней границе: 0.2 млн получишь почти наверняка, а 6.75 — это верхний край везения, а не обещание. Ставьте 🔥, если было полезно! 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS1,38%
- 4 авг.📈 Этот лайфхак экономит кучу времени при создании дашбордов Привет, друзья! На связи Евгений Буторин, ментор интенсива по SQL и руководитель направления аналитики в Альфа Банке 👋🏻 Хочу рассказать вам лайфхак, которым пользуюсь каждый раз, когда собираю дашборд под конкретную задачу. Часто вижу, что многие сразу лезут в BI-систему и начинают тянуть сырые таблицы, строить связи и уже потом мучаются с моделью. Я делаю наоборот: 1️⃣ Сначала создаю черновую модель-прототип прямо в Excel. Это помогает чётко понять, какие данные мне нужны и какая структура будет в каждой из таблиц в модели данных. Уже на этом этапе я понимаю, какие будут фильтры и метрики. 2️⃣ После этого я иду в базу данных и собираю необходимые мне данные в нужном формате. Здесь кстати отдельный плюс, что я могу делать это сам — это значительно упрощает процесс. 3️⃣ Только после этого иду в BI-инструмент и уже собираю «боевую» модель. К этому моменту у меня уже есть чёткое понимание: ➖ какие таблицы должны быть; ➖ какая у них должна быть структура; ➖ где лучше сделать вычисляемые столбцы, а где — меры; ➖ какие связи сделать «один ко многим», а какие — «многие ко многим». Самый большой выигрыш здесь — скорость. Да, на старте я трачу больше времени, но экономлю время на сборе данных и переделывании. Попробуйте в следующий раз сначала сделать прототип. Это экономит кучу времени и нервов 😉 Ставьте 🔥 и сохраняйте лайфхак к себе! 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS1,35%
- 11 авг.💻💻💻💻💻День джуна в прямом эфире! Представьте, что уже сегодня вы решили стать аналитиком. На нашем вебинаре за 1,5 часа вы пройдёте все этапы, через которые проходит почти каждый кандидат: получите тестовое, разберете его вместе с тимлидом одного из крупнейших банков страны, а затем окажетесь на собеседовании с HR и узнаете, что на самом деле влияет на решение работодателя. Итого за 90 минут вы проживете путь начинающего аналитика — от отклика на вакансию до первого собеседования! ➖ Вместе с лидом группы CRM-аналитики Альфа-Банка вы разберете реальный кейс, максимально похожий на то, что работодатель хочет увидеть в вашем портфолио. ➖ А HR с многолетним опытом найма IT-специалистов расскажет, какие навыки действительно востребованы на рынке аналитики в 2026 году и что поможет выделиться среди других кандидатов, даже если вы только начинаете карьеру. Спикеры: 🧑🏻💻 Евгений Буторин, руководитель CRM-аналитики развития клиентской базы в Альфа Банке, ментор бесплатного интенсива по SQL 👩🏻💻 Наталья Рожкова, HR и карьерный консультант Симулейтив, ex-Ancor IT recruitment 📆 Когда: 11 августа, 19:00 МСК ➡️ Поставить напоминание в календарь 📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS1,33%