Analyst’s Notebook📖
340 subscribers
43 photos
26 links
Жизнь аналитика: карьера, образование, хард и софт скиллы etc
Автор: @glebgavrin
Download Telegram
Как улучшить точность модели на 5-10%: правильный подбор гиперпараметров 🎯

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

Сегодня я расскажу про 3 самые популярные на данный момент метода (и библиотеки) для подбора гиперпараметров - GridSearchCV, RandomizedSearchCV и Optuna 🧮

Самый тривиальный из методов - GridSearchCV. Этот метод перебирает все возможные комбинации гиперпараметров из заданной сетки. Например, если мы предоставим ему такую сетку: {‘max_depth’: [4, 6, 8], ‘n_estimators’: [200, 400]}, он обучит 3 * 2 = 6 моделей и выберет лучшую. Особенностью GridSearch является то, что он всегда находит лучшее решение (так как просто напросто перебирает все комбинации).

Главный минус такого подхода - скорость вычислений. Если мы хотим перебрать большую сетку, GridSearchCV - не лучший вариант ☺️

Пример кода с использованием GridSearchCV вы найдете в комментарии.

RandomizedSearchCV
работает иначе. Он принимает на вход сетку гиперпараметров и параметр n_iter, и в процессе подбора перебирает n_iter случайных комбинаций гиперпараметров. Главный минус такого подхода в том, что мы можем упустить оптимальное решение.
Важной фишкой RandomizedSearchCV является возможность задавать не только детерминированные значения параметров, но и распределения. Например, равномерное распределение: 'alpha': uniform(0.01, 10.0).

Пример кода с использованием RandomizedSearchCV ждет вас в комментарии.

Optuna
- это библиотека для умного подбора гиперпараметров.
Главное ее преимущество в том, что в процессе подбора она использует историю предыдущих испытаний для выбора следующих параметров. Это помогает отсекать огромное количество слабых комбинаций. Плюс Optuna умеет распараллеливать вычисления , что заметно увеличивает скорость подбора.
Еще одним ключевым преимуществом Optuna является возможность визуализации. 📊
Например, можно визуализировать важность гиперпараметров. Это может быть полезно, если после первого подбора мы хотим еще улучшить модель.
Например, визуализация важности показала, что важность гиперпараметров subsample и max_depth в разы меньше, чем важность гиперпараметров learning_rate и colsample_bytree. В таком случае мы можем зафиксировать subsample и max_depth такими, как их подобрали с первого раза, и дальше продолжить подбирать learning_rate и colsample_bytree, чтобы еще повысить качество модели.

Пример кода с Optuna в комментарии.


Чек-лист:
что когда использовать? 📝

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

RandomizedSearch
подойдет, если нужно быстро получить хороший, не обязательно идеальный результат 🏎

Optuna
-моя любимая библиотека для подбора гиперпараметров 🔝
В большинстве случаев она будет идеальным выбором благодаря:

· умному алгоритму обучения
· высокой скорости
· уникальным возможностям (визуализации, параллельные вычисления и т.д)

Графики ниже демонстрируют процесс работы Optuna:

2. История оптимизации — как менялась метрика с каждым испытанием (trial).
3. Важность параметров — какие гиперпараметры повлияли на результат сильнее всего.

Сравнивайте, экспериментируйте и делитесь вашим опытом в комментариях!
💬

---

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

Ставьте
🔥 если было полезно
❤️ если интересны посты на тему машинного обучения
🤩 если хотели бы видеть еще посты на тему подбора гиперпараметров

#аналитические_методы
#ml
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🏆21🍌1😈1👻1🤪1
С Новым 2026 годом! 🎄

Этот канал — мой совсем новый и важный проект, который начался только осенью.

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

В новом году я обещаю больше полезного контента об анализе данных. Будем разбираться во всём вместе!

#сНовымГодом
Please open Telegram to view this post
VIEW IN TELEGRAM
9🎄4🔥1🌚1
После праздников все мы возвращаемся к проектам — рабочим, учебным или бизнес-задачам.

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

3 кита успешного проекта 🐳

1. План проекта 🗺
Многие недооценивают этот этап и хотят быстрее приступить к работе. Но опыт показал: если чётко не обрисовать хотя бы примерный план, проект может встать или развалиться.

На старте важно ответить на ключевые вопросы:

Зачем мы это делаем? (Цель и ценность)

Как мы поймём, что всё получилось? (Критерии успеха и метрики)

Какие у нас сроки и ресурсы? (Реализм vs. амбиции)

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

2. Путь через MVP 🔧
Раньше компании часто пытались сразу сделать идеальный продукт. Сейчас стандартом стал MVP (Minimum Viable Product) — минимально жизнеспособный продукт.

Смысл в том, чтобы сначала выпустить базовую версию с ключевой функцией, а потом улучшать её на основе фидбека от заказчиков или пользователей. Этот подход экономит силы на отладке и позволяет не тратить время на лишние фичи, которые на деле никому не нужны. Для аналитика это как сначала проверить гипотезу на небольшой выборке, а уже потом строить полномасштабную модель.

3. Движение итерациями: не один марафон, а серия спринтов 🏃‍♂️
Наиболее продуктивный способ вести проект — двигаться короткими циклами (итерациями).

Примерный пайплайн:

Старт: Общее понимание цели, план MVP, детальный план первой итерации.

Работа: Фокус только на задачах текущей итерации.

Ретроспектива: Разбор результатов, корректировка планов.

Повтор шагов 2-3...
N. Результат: Презентация MVP, передача, сбор фидбека и планирование доработок.

Именно эти три концепции я считаю фундаментом для любого проекта. 🧱
В следующих постах углублюсь в каждую из них и приведу примеры из своих и open-source проектов.

А какие принципы в ведении проектов ключевые для вас? Пишите в комментариях! 💬

Ставьте
🔥 — если был полезно
❤️ — ждёте продолжения темы
🤩 — ваши принципы совпадают с моими

#софт_скиллы
#проекты
#project_management
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73🐳21😈1
Как я стал аналитиком📊

В конце 1 курса я начал задумываться о карьере и узнавать, где работают и чем занимаются выпускники моего факультета или аналогичных факультетов других вузов.
Оказалось, что большинство из них выбирают анализ данных или финансы.

Тогда я уже прошел пару курсов по финансам в университете и понимал, что это не совсем моё.
Также я рассматривал классический трек экономиста с глубоким погружением в макроэкономику и работой в ЦБ / research подразделениях банков.

Почему выбрал именно анализ данных?
🤔

В середине второго курса началась макроэкономика и я понял, что мне не очень интересно. Это стало стимулом поставить на первое место в своем видении карьеры анализ данных. К тому же я уже знал Python и очень хорошо закрыл Тервер и Матстат.

В анализе данных меня привлекала возможность находить инсайты в данных, строить на основе данных прогнозы с помощью моделей. Это похоже на работу детектива: сложить картину из имеющихся улик, спрогнозировать ситуацию наперед 🕵️‍♂️

Обучение
🧑‍🎓

К моменту середины 2 курса из релевантных дисциплин я знал:
- Python
- Тервер и статистику

За второй семестр я прошел курсы:
- Основы машинного обучения
- Анализ данных на Python

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

С таким набором знаний я уже мог рассчитывать на какой-то успех при выходе на рынок труда🤩

Поиск первой работы
🔍

Еще на 1 курсе, когда я еще не знал точно, чем хочу заниматься, я решил, что очень хочу летом после 2 курса попасть на стажировку, чтобы получить реальный опыт и изучить выбранную сферу изнутри. Поэтому на 2 курсе с марта я начал откликаться на стажировки и джуновские вакансии на аналитика / ds.

Я подавался как на отдельные вакансии, так и на большие программы стажировок (такие есть к Сбера, Озона, Авито и др.). На программах я в основном получал отказы, так как искали как минимум студентов 3 курса.

Для поиска вакансий я использовал все популярные ресурсы: сайты компаний, hh.ru, Хабр карьера, HSE career и др.

Таким образом я отправил более 70 откликов, прошел 4 собеседования и получил 2 оффера: 1 на стажера и 1 на джуна.

Что я бы изменил в своем процессе поиска работы?
📝

1. Добавлял бы больше достижений в cv
🥇
Например не «работал учебным ассистентом по Микроэкономике, проверял домашние работы студентов», а «работал учебным ассистентом по Микроэкономике и за семестр провел 5 консультаций для студентов, повысив их успеваемость в сравнении с другими группами»

2. Больше использовал бы ресурсы знакомых
для попадания через рефералки.

3. Использовал бы Linkedin
📱

В следующем посте расскажу про самое важное собеседование: как я готовился, какие неожиданные вопросы задавали и что, по моему мнению, стало решающим для оффера в Сбер💳

Главное, что я понял: путь в аналитику — это не про идеальное резюме, а про готовность учиться на ошибках и действовать.
У меня получилось — получится и у вас! 🌅

А пока вопрос к вам: что для вас сейчас самое сложное на пути к первой работе в аналитике?
Поделитесь в комментариях — постараюсь дать совет или разберу в будущих постах.💬

Ставьте
🔥 если было полезно
❤️ если ждете новые посты из этой серии
🤩если сейчас ищете свою первую работу

#жизнь_аналитика
#карьера
#образование
#анализ_данных
#путь_в_аналитику
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥8🤩2🦄1
Что не расскажут на курсах: проблемы реальных данных 🗂

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

Какие проблемы могут быть с данными и как их решать? 🚨

1. Пропуски
В витринах данные часто содержат пропуски, которые могут серьезно исказить анализ, если их игнорировать.
Решение: перед JOIN изучите таблицы на пропуски. В pandas — .isnull().sum(). Решайте: удалить, игнорировать или заполнить. Ищите и скрытые пропуски (типа -1, "N/A") через SELECT DISTINCT.

2. Дубликаты
Часто бывает, что по ошибке в витрину заносится например 2 записи об одном клиенте, хотя структура этого не предполагает. Здесь появляется риск дважды учесть один и тот же показатель.
Решение: ищите через duplicated() по ключевым столбцам. Скрытые дубли (типа «ООО Феникс» и «Феникс») — через LIKE в SQL.
Совет: для джойнов используйте только id.

3. Лаги в поставках данных
Данные в витрины могут поставляться не сразу, а, например, через 2 дня.
Если вы пишите скрипты, которые регулярно обновляются, подтягивая данные из витрин, это надо учитывать.

4. Смещение во времени
Разные таблицы обновляются в разное время (например, таблица заказов — в реальном времени, таблица возвратов — раз в неделю). Если вы их джойните по дате, вы теряете свежие данные или создаёте видимость, что возвратов нет.
Пример: Заказ от 25 января есть, а информация о его возможном возврате появится только 1 февраля.
Решение: Всегда проверяйте MAX(date) в каждой таблице перед анализом. Используй JOIN с пониманием, что часть данных может быть «ещё в пути».

5. Изменение бизнес логики
Например, ml модель приоритизирует клиентов, и до 2026 года 20% дохода с продаж засчитывалось департаменту, разработавшему модель. А с начала года правила изменились,  и теперь департаменту засчитывается 30% дохода. В витрине все новые данные по продажам рассчитываются согласно новому правилу, а исторические данные пересчитаны не были. Поэтому при анализе доходов департамента можно сделать ложный вывод о том, что продажи выросли (на самом деле не факт).
Решение:  регулярно уточнять у владельцев данных по последним изменениям или попросить уведомлять о них.

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


Что делать в первый день работы с новой таблицей🆕:

1. SELECT COUNT(*), MIN(date), MAX(date) FROM table — объём и временные границы.
2. SELECT COUNT(*) - COUNT(key_column) FROM table — пропуски в ключевом поле.
3. SELECT key_column, COUNT(*) as cnt FROM table GROUP BY key_column HAVING cnt > 1 ORDER BY cnt DESC LIMIT 5 — поиск явных дублей по ключу.
4. SELECT column, COUNT(*) FROM table GROUP BY column ORDER BY 2 DESC LIMIT 10 — посмотреть топ-10 значений в важной колонке (поймаешь «-1» и «N/A»).
5. Спросить у коллеги: «Какая самая частая ошибка именно в этой витрине?»


Принципы работы с грязными данными🐖

Доверяй, но проверяй ✔️
Любые данные могут содержать ошибки, проверка никогда не будет лишней

Контекст важнее чистоты 🔍
Иногда дубли, пропуски могут быть сигналом о проблеме в бизнес процессе.
Например, если аналитик видит пропуски в поле "Причина отказа", это может означать, что менеджеры по
продажам не заполняют его, и стоит обязать их делать это.

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

💎Работа с «грязными» данными — ваше преимущество. Она показывает реальный бизнес и даёт возможность разглядеть неочевидные проблемы.

А какие у вас принципы работы с промышленными данными? Пишите в комментариях! 💬

Ставьте
🔥 если было полезно
❤️ если интересно увидеть ещё посты про работу с необработанными данными
🤩 если видите в работе с такими данными точки роста

#анализ_данных
#данные
#качество_данных
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥7👍3😈1🎄1
Как я управляю временем на работе?

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

Составление корзины
🛒

Раз в неделю на catch up с коллегой смотрим на список всех моих задач и обновляем статусы и приоритеты.
Список является обычным письмом в почте с примерной структурой:

1. Модель X - до 30.01 собрать датасет для MVP
2. Выборка клиентов Y - ждем обратную связь от W. Напомнить ему
3. Исследование Q - к 2.02 вернуться с прогрессом
И так далее.
Этот список помогает мне в ежедневном тайм-менеджменте.
а.

Какие бывают задачи? Моя классификация
📝

1. Срочные
☄️
Как правило, появляются неожиданно и не очень сложны в выполнении.
Пример: выгрузить доходы по клиенту X в разрезе по месяцам

2. Проектные задачи
🗺
Модели, дашборды, бэктесты и т.п.
В общем все, что требует >1 дня

3. Операционные процессы

Процессы, связанные с жизненным циклом продукта. Примером может стать запуск новой кампании продаж

Как я распределяю время внутри дня?
🕒

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

В первую очередь в него входят задачи, по которым есть конкретные сроки и они достаточно близко. Поэтому первые 2-3 часа я как правило трачу на такие задачи, чтобы закрыть их, или хотя бы значительно продвинуться.

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

Вечер (после первых двух пунктов может остаться как час, так и 4 часа) я оставляю на проекты. В первую очередь занимаюсь теми, для которых поджимают сроки.

Что делать, когда много срочных задач?
🆘

1. Выделить задачи, по которым срок сегодня или завтра
2. Для каждой из них подумать, насколько быстрота моего выполнения повлияет на бизнес? (Для многих задач срок задан просто из общих соображений, поэтому их можно отложить в такой ситуации)
3. Если приходит понимание, что не успеваешь - связаться с коллегами и объяснить ситуацию, попросив больше времени

Инструменты: что конкретно использую
🛠

1. Письмо с списком задач.
✉️
Оно всегда открыто на одном из мониторов.

2. Тетрадь
📝
Новый день = новая страница. Помогает распределять время внутри дня и не забывать про срочные задачи.

3. Календарь
📆
В календаре корпоративной почты удобно забивать себе время на проекты. Так легче выделить на них время + никто не будет беспокоить в это время.

4. Переоценка времени

Если думаю, что задача займет 2 часа, закладываю на нее как минимум 3. Всегда находятся неожиданности: не хватает данных, нужно уточнение от коллег, зависает кластер.

5. Вечернее планирование
🌇
За 10 минут до конца я прикидываю, что сделал за день и что обязательно надо доделать завтра. Помогает снять напряжение, вызванное неопределенностью.

Мои главные принципы
❗️

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

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

3. Двигаться итерациями
С опытом я перестал надеяться, что сделаю любую задачу за 1 подход. Всегда возникают сложности, которые в начале трудно предугадать. Итеративное движение помогает держать ритм и постепенно идти к результату.

А какие инструменты/принципы используете вы?
Пишите в комментариях! 💬

Ставьте
🔥если было полезно
❤️ если вас интересны посты на тему таймменеджмента
🤩 если ваши наблюдения совпадают с моими

#жизнь_аналитика
#тайм_менеджмент
#анализ_данных
#софт_скиллы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🤩32😈1💅1
Что я смотрю на YouTube: подборка каналов для аналитика 📺

Сегодня воскресенье, поэтому решил не грузить вас объемными постами, а просто поделиться подборкой каналов про анализ данных и карьеру на 📺, которые я смотрю


📚 Фундамент и теория

📊StatQuest with Josh Starmer
Короткие ролики, которые ставят всё на свои места. Идеально, когда нужно быстро понять конкретную тему по ML или статистике.

🔵🟤3Blue1Brown
Лучший в своем жанре (короткие ролики с анимацией) канал.
Тут можно найти плейлисты по множеству тем – от мат анализа до нейронных сетей.

🧑‍💻freeCodeCamp.org
Длинные обучающие ролики в формате быстрых курсов. Любителям такого формата точно понравится. Например есть курс по основам А/Б тестов за 4 часа

🛠 Инструменты и практика

🏫Канал ФКН ВШЭ с записями занятий
Именно этот канал стал топ-1 по времени просмотра у меня в 2025 на ютубе.
Супер ресурс с курсами легендарного факультета. Вдобавок есть вики страничка, где к большинству курсов можно найти не только записи занятий, но и домашки, которые традиционно на ФКН мега полезные и насыщенные. Когда-нибудь сделаю пост с подборкой моих любимых курсов отсюда.

💻Ryan & Matt Data Science
Недооцененный канал с кучей полезных роликов. Много плейлистов, позволяющих изучать новые разделы с нуля на практических примерах, например, плейлист по pandas.

🚀 Карьера

🌎Noukash
Один из лучших каналов про карьеру в IT. Автор прошел путь от вката в аналитику из другой профессии до офферов на Senior позиции в Кремниевой долине.
Канал многогранен и здесь можно найти как видео по А/Б тестам для новичков, так и ролик про выгорание и методы борьбы с ним.

А какие каналы смотрите вы?
Пишите в комментариях!💬

Ставьте
🔥 если подборка полезна вам
❤️ если интересно видеть другие подборки материалов / каналов от меня
🤩 если ваш набор каналов пересекается с моим

#анализ_данных
#карьера
#образование
#подборка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥176🤩2😍1😈1
Корреляция ≠ Причинность: как не обмануться цифрами 📈

Заголовки вроде «Красное вино продлевает жизнь» часто основаны лишь на корреляции, которую выдают за причину. Путаница между этими понятиями — частая ошибка в анализе и топовый вопрос на собеседованиях аналитиков и ds (по моим наблюдениям входит в топ-10 самых популярных 🔝)

Суть проблемы 🚨

Высокая корреляция — это сигнал к размышлению, а не готовый вывод. За ней может стоять:

1. Скрытая переменная: жара → рост продаж мороженого и числа утоплений. В таком случае корреляция между продажами мороженого и количеством утоплений будет высокой, но первое явно не является причиной второго.

2. Обратная причинность: не прием таблеток → смерть, а болезнь → приём таблеток + смерть.

3. Случайное совпадение: если перебрать тысячи наборов данных, найдутся идеальные тренды, как акции Barclays и число экологов в штате Нью-Джерси (на картинке). Множество подобных примеров собрано на этом сайте.

4. Истинная причинно-следственная связь: как раз то, что нужно уметь распознавать аналитикам.

❗️Таким образом, из причинно-следственной связи следует корреляция, а вот обратное верно далеко не всегда.

Как искать причинность? Практические методы 👍

1. Золотой стандарт: A/B-тесты 🆎
Рандомизация на тестовую и контрольную группы позволяет изолировать эффект. Статистическая проверка результатов часто основана на линейной регрессии, что тесно связывает эксперимент с базовой аналитикой.

2. Если эксперимент невозможен (работа с историческими, рыночными данными), применяют:
- Проверку временного порядка: Причина всегда предшествует следствию. Если это правило не выполняется – можно не продолжать анализ.
- Контроль смешивающих факторов: Внеся в модель (например, через регрессию) возможные скрытые переменные (например, социальный статус), можно увидеть, исчезнет ли исходная связь.
- Поиск инструментальных переменных и другие квазиэкспериментальные методы для приближения к чистоте эксперимента.
Если интересно узнать больше про эконометрические способы детекции эффектов воздействия, ставьте 🐳
Еще могу порекомендовать данный канал, он специализируется на этом.

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

А встречали ли вы в своих проектах / задачах кейсы с высокой корреляцией, за которой не стояла причинно-следственная связь?
Пишите в комментариях! 💬

Ставьте
🔥 если было полезно
❤️ если интересны разборы популярных вопросов с собеседований
🤩 если хотите увидеть посты про корреляционный и каузальный анализ

#аналитические_методы
#статистика
#собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
7🐳6🤩4🔥3😈1😨1
Мой топ: как я подбираю визуализацию и библиотеку под неё 📊

Визуальный анализ — база любого проекта.
Для частых задач я собрал свой набор графиков, где миксую matplotlib, seaborn и plotly.
Сегодня расскажу, какую библиотеку и под какой сценарий беру.


Гистограмма распределения с выделением мер центральной тенденции
↗️

Для визуализации распределения я обычно использую seaborn, так как kde-сглаживание и hue-группировка делаются в одну строку. Добавление линий среднего и медианы помогает понять, в каком хвосте выбросы. Если среднее заметно правее/левее медианы — почти наверняка в этой стороне есть выбросы. На первой картинке видно: хвост справа тянет среднее за собой.


Распределения + выбросы
🔭

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


Временные ряды
📈

Для временных рядов я обычно использую plotly line.
Plotly позволяет быстро подсветить максимумы/минимумы. Я могу навести курсор и сразу увидеть дату и значение без дополнительного кода — это ускоряет поиск аномалий.
Пример использования на третьей картинке. Также есть пост про визуализацию нескольких рядов сразу для сравнения.


Столбчатые диаграммы
📊

Для столбчатых диаграмм я использую как seaborn, так и plotly. Seaborn в основном предпочитаю в случаях, когда надо визуализировать частотность (countplot) или сравнить средние/медианы по группам (группировка + barplot) - примеры на 4й и 5й картинках.
В plotly легко сделать анимированные или накопительные доли, а интерактивность помогает смотреть структуру без тонны графиков.
Пример на шестой картинке.


Тепловая карта корреляций
🎨

Для анализа корреляций идеально подходит heatmap от seaborn. Чем выше корреляция - тем ярче заливка ячейки. Пример на седьмой картинке.


Код для построения всех этих графиков с датасетами выложил на kaggle.


А какую библиотеку для визуализации предпочитаете вы? Или, как и я, используете разные?
Пишите в комментариях 💬

Ставьте
🔥если было полезно
❤️ если интересны посты про визуализацию данных
🤩 если согласны с моим топом

#визуализация_данных
#python
#matplotlib
#seaborn
#plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1511🐳1
Разбор кейса: сырые данные, коммуникация и вайбкодинг — как я собрал дашборд 📈


Контекст

Недавно наша команда получила доступ к общебанковской CRM. В ней хранятся данные по всем кампаниям продаж — настоящий кладезь информации.

Как только коллеги из бизнес‑подразделения узнали об этом, они пришли к нам с запросом: «Сделайте дашборд по кампаниям другого департамента. Хотим понять, влияют ли их лиды на продажи нашего продукта».

На всякий случай напишу:
Лид (конкретно в моей сфере ) — это клиент, который соответствует критериям потенциально склонного к покупке продукта. Информация о таких клиентах передается сейлзам, которые предлагают потенциальным клиентам продукты.
Кампания продаж — логика отбора лидов + процесс постановки задач по этой логике сейлзам.

Задача звучала просто: собрать статистику за последний год и оценить эффект. Но на практике всё оказалось куда интереснее.


Первые шаги ▶️

Начал выгружать данные — и сразу две проблемы:
1. Кампании без названий (одни описания).
2. Дубликаты лидов (на одного клиента — несколько лидов за короткое время).
Дубликаты схлопнул скриптом. С кампаниями без названий помог аналитик из того департамента: объяснил, что это тестовые/нетиповые кампании, и я объединил их.


Инструменты и решение ⚙️

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

Но синтаксис Dash оказался очень неприятным. Тогда я решил прибегнуть к вайбкодингу, но не напрямую:

- В ipynb построил графики и таблицы.
- Скопировал код в нейросеть с описанием нужной структуры
- Получил код, запустил — что-то съехало. Уточнил промт, через пару итераций заработало.
- Каждый раз сверял расчёты, чтобы нейросеть не исказила логику.
В итоге нейросеть написала 80% кода, а я сэкономил несколько дней.


Что получилось на дашборде 👀

На дашборде несколько блоков — каждый закрывает свой вопрос:

1. Таблица с детализацией по кампаниям (лиды, сделки, отказы, доход) + фильтры — фото 1.
2. Динамика доходов: наши клиенты vs клиенты с лидами — фото 2.
3. Работа с лидами: выставлено vs отработано по месяцам — фото 3.
4. Сделки и отказы по месяцам — фото 4.
5. Документация с формулами — чтобы дашборд не был чёрным ящиком.


Польза для бизнеса 🏆

Благодаря дашборду коллеги из бизнес‑команды сделали несколько важных выводов:

- Доля «лидовых» доходов росла в течение 2025 года. Значит, есть потенциал для совместной работы департаментов.
- Нашлись кампании-чемпионы, регулярно приводившие клиентов к покупке нашего продукта. Логику этих кампаний будут анализировать, чтобы запустить похожие.
- Процент отработанных лидов и скорость отработки оказались на высоком уровне, значит сейлзы не забывают про лиды.

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


Рефлексия: что пошло не так и чему я научился 🤔

На самом деле не всё прошло гладко с первого раза. Когда я показал первую версию дашборда коллеге из бизнеса, его ожидания не совпали с реальностью. Оказалось, что заказчику важно видеть немного другие разрезы, другие сравнения. Пришлось переделывать.

Из этого я вынес два урока:

1. ТЗ нужно уточнять до мелочей. Не просто «сделай дашборд по кампаниям», а «какие метрики, в каких разрезах, с какой периодичностью ты будешь смотреть». Лучше потратить час на уточнение в начале, чем неделю на переделку в конце.
2. Двигаться итеративно. Вместо того чтобы две недели чистить данные и строить всё сразу, стоило показать сырые данные, потом простые графики, согласовать метрики, и только потом дотачивать визуал. Тогда не пришлось бы переделывать.

А вы сталкивались с ситуацией, когда ожидания заказчика и реальность расходились?
Делитесь опытом в комментариях 💬

Ставьте
🤩 если понравилась рубрика с разбором кейсов с моей работы
❤️ если интересны посты про то, как я использую вайбкодинг
🔥 если было полезно

#из_моей_практики
#разбор_кейса
#plotly
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩14🔥21👏1😈1