Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
18.5K subscribers
2.36K photos
119 videos
64 files
4.81K links
Все самое полезное для дата сайентиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/4hNluQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
Download Telegram
✍️ Вопрос подписчика: как вы обычно чистите текст перед обработкой?

Сегодня делимся вопросом от подписчика — он работает с NLP и решил уточнить у сообщества.

💬 Вот что он пишет:
Если использую базовые векторизации вроде Bag-of-Words или TF-IDF — стараюсь максимально «очистить» текст:
удаляю пунктуацию, стоп-слова, лемматизирую, нормализую регистр и т.п.

Но если работаю с моделями вроде spaCy или gensim, где контекст важен — то минимальная предобработка: стараюсь сохранить структуру.

А как подходите к этому вы?


А как делаете вы?
➡️ Минимализм или агрессивная очистка?
➡️ Меняется ли подход в зависимости от модели?

👇 Поделитесь своими практиками в комментариях!


Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
2
💬 Холивар: MLflow vs Weights & Biases — что выбрать и зачем?

Если вы хоть раз строили ML-пайплайн всерьёз — вы сталкивались с вопросом:
Чем трекать эксперименты, метрики, параметры и артефакты?


Кто-то клянётся в верности MLflow, кто-то уже не представляет жизни без Weights & Biases (W\&B).
Так кто прав?

Сторонники MLflow говорят

✔️ Open-source, без ограничений:
Можно поднять свой сервер, всё под контролем.

✔️ Просто, понятно и стабильно:
Всё нужное — логгинг, артефакты, модели, REST API — уже есть.

✔️ Интеграция с кучей фреймворков:
Поддерживает sklearn, PyTorch, TensorFlow, Spark и даже Java/R.

✔️ Безопасность и приватность:
Ничего не утекает в облако — всё у тебя на машине или в корпоративном кластерe.

Сторонники W\&B отвечают

✔️ Удобство и интерфейс:
Визуализации, дашборды, сравнение экспериментов — всё за 5 минут.

✔️ Сильная экосистема:
Кроме логгинга — есть hyperparameter sweeps, модели, dataviz, CI, репорты.

✔️ Отличная поддержка и документация:
Работает «из коробки», даже джуны могут сразу в бой.

✔️ Сотрудничество и коллаборации:
Проект можно удобно шерить в команде, вести историю, оставлять заметки.


Что вызывает споры:
— MLflow кажется «голым» без UI, но легко кастомизируется.
— W\&B — мощный, но требует подключения к внешнему сервису (и может быть платным).
— Один ориентирован на независимость и продакшн, другой — на удобство и скорость R\&D.
— MLflow можно встроить в CI/CD и жить без браузера. W\&B — это скорее облачная платформа с хорошим UX.

👉 А вы что используете в продакшене или pet-проектах?
MLflow, W\&B, а может вообще свой YAML + Excel?

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
💬 Истории подписчиков: стоит ли переходить с Pandas на Polars или DuckDB ради экономии CPU?

Недавно один из подписчиков поделился своей болью, и она знакома многим, кто пишет пайплайны на Pandas:
Я собрал пайплайн, который работает каждые 2 минуты: делает pivot’ы, merge, векторные операции. Данные геопространственные, собираются из 4–5 источников, обрабатываются, суммируются по h3 ячейкам, потом объединяются и пересчитываются. Всё — через NumPy и Pandas.

Проблема:
— Объём данных небольшой (5–10 тыс. строк, 100–150 колонок)
— Операции векторные, локально работают за 30–40 сек
— Но на сервере в Kubernetes всё тормозит:
⚠️ нагрузка на CPU зашкаливает
⚠️ контейнер иногда throttled
⚠️ Go-сервисы рядом едят 0.1 CPU, а Python жрёт всё

Смотрю в сторону Polars — говорят, он быстрее. Но интересует не только скорость, а экономия CPU. Кто-то советует DuckDB, но SQL-стиль с NumPy-вычислениями пугает. Ещё вариант — переписать всё на Go, но там нет готовых аналогов pivot-таблиц и NumPy-функций.


🤔 Вопросы, которые волнуют:
— Правда ли Polars заметно экономит CPU по сравнению с Pandas?
— DuckDB подходит для интенсивных расчётов?
— Стоит ли использовать Apache Arrow? Можно ли сочетать его с Pandas?
— Или пора признать: Python — не для продакшн ETL, и переписать всё на Go?

🤝 Если вы сталкивались с похожей ситуацией — напишите в комментариях: какой стек вы выбрали и почему?

P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
🕵️‍♂️ Data Science-челлендж для тех, кто не боится настоящих ошибок

Когда модель слишком хороша, чтобы быть правдой — скорее всего, где-то утечка.


Про data leakage знают все. Но теория — это просто.
А как насчёт практики: сможете ли вы найти, где модель обучается на «будущем»?

👍 Ваш кейс: вы — дата-сайентист в авиакомпании.

Ваша задача — предсказать вероятность аварии до вылета. У вас реальные данные: техобслуживание, параметры двигателей, логи. Всё выглядит надёжно. Но... сколько утечек вы допустите, прежде чем поймёте, почему F1-score такой высокий?

👍 Проверьте себя

1️⃣ Вопрос

Вы используете данные из чёрного ящика и пост-полётные отчёты (Altitude, Alerts, Warnings, Outcome).

Можно ли использовать это для предсказания до взлета?

Ответ: Нельзя. Это данные из будущего. Temporal Leakage. Удаляйте все пост-фактум признаки.
+12 баллов за правильный ответ

2️⃣ Вопрос

Вы добавили колонку history_file — из какого .csv пришёл самолёт: no_accidents.csv или previous_accidents.csv.

Вроде логично?

Ответ: Нет. Вы зашили таргет в признаки. Это прямая утечка.
+1 балл за правильный ответ

3️⃣ Вопрос

В датасете есть Tail# и Flight# — уникальные ID самолёта и рейса.

Стоит ли их оставлять?

Ответ: Нет. Это Entity Leakage. Модель может просто запомнить, что «этот борт не ломается».
+2 балла за правильный ответ

4️⃣ Вопрос

Вы делите данные случайным образом (random split), не учитывая дату рейса (Date).

Это важно?

Ответ: Да. Если train использует рейсы из будущего, а test — из прошлого, это Temporal Leakage.
+1 балл за правильный ответ

5️⃣ Вопрос

Вы считаете корреляции, запускаете PCA — до split'а на train/test.

Есть риск?

Ответ:Да. Это Data Analysis Leakage — модель знает про тест заранее.
+1 балл за правильный ответ

Максимум баллов — 17.
Набрали больше 14? Значит, умеете не просто строить модели, а и замечать опасные утечки.
Меньше 10? Самое время пересмотреть подход к построению пайплайнов и анализу данных.

💬 Делитесь результатами и находками в комментариях — особенно если нашли что-то, что мы упустили.

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥1
🎯 Как устроен процесс постановки задач в DS-проектах

Вопрос от нашего подписчика:
Кто в команде формулирует задачу для дата-сайентиста и как понять, что мы вообще решаем ту самую проблему?


Работа дата-сайентиста редко начинается с чёткой фразы: «Построй, пожалуйста, модель классификации».

Чаще — с размытого бизнес-вопроса:
🗣 «Как нам уменьшить отток?»
🗣 «Можно ли предсказать спрос?»
🗣 «А что если применить ML и сделать лучше?»

Чтобы такие вопросы превратились в работающие ML-решения, нужен чёткий процесс постановки и валидации задачи:

1️⃣ Формулировка бизнес-проблемы

В идеале, формулировка задачи — совместная работа: PM или бизнес-стейкхолдер озвучивает цель (например, сократить убытки), а DS помогает уточнить, можно ли это формализовать и измерить.

Важно сразу понять:
— Что считается «успехом»?
— Какое решение будет полезно и внедряемо?
— Какие есть ограничения по данным, времени, интерпретируемости?

2️⃣ Перевод в ML-форму

Бизнес-вопрос → ML-задача.

Пример:
> Удержать пользователей → Задача бинарной классификации: уйдёт или нет?

На этом этапе определяем:
— Формат задачи: классификация, регрессия, кластеризация?
— Целевая переменная (target) и доступные фичи
— Источники данных и объём истории

3️⃣ Сбор и анализ данных

Иногда именно на этом этапе становится ясно, что:
— таргета нет,
— данные грязные или разрозненные,
— «то, что хотели предсказать», уже известно слишком поздно.

EDA (Exploratory Data Analysis) часто помогает откатиться назад и переформулировать задачу.

4️⃣ Формулировка гипотез и метрик

Пример гипотезы:
«Если мы предскажем churn за 7 дней, это даст маркетингу время для реакции».

Важно:
— Выбрать метрику качества, понятную бизнесу (например, Precision\@k, uplift, ROI)
— Понять, как будет выглядеть A/B или offline-валидация
— Зафиксировать baseline (что будет, если не использовать ML)

5️⃣ Ретроспектива и переопределение

Даже после запуска — постановка задачи не заканчивается.

Важно отслеживать:
— работает ли модель в реальности?
— совпадают ли результаты offline и online?
— не поменялись ли условия, под которые она была обучена?

💬 А как у вас в команде формируются ML-задачи? Кто участвует, что помогает, а что мешает? Расскажите в комментариях 👇

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4
😐 Холивар: метрика Accuracy — вообще уместна ли в реальных задачах

Особенно — при дисбалансе классов.

▶️ Что такое Accuracy

Accuracy (точность классификации) — доля правильно предсказанных объектов:
accuracy = (TP + TN) / (TP + TN + FP + FN)


Но… эта метрика вводит в заблуждение, когда классы несбалансированы.

▶️ Пример

Допустим, модель предсказывает мошенничество (fraud) по транзакциям:
👉 Класс 0 — «не мошенничество» — 99.5%
👉 Класс 1 — «мошенничество» — 0.5%

# Модель всегда говорит не мошенничество
y_pred = [0] * 1000
y_true = [0]*995 + [1]*5

from sklearn.metrics import accuracy_score
accuracy_score(y_true, y_pred) # → 0.995


📈 Accuracy = 99.5%. Но модель никогда не находит мошенников. Она бесполезна.

▶️ Почему это проблема

👉 Смещение метрики: высокий accuracy может скрывать полное отсутствие качества по минорному классу
👉 Нет контроля над важными ошибками: FP и FN не различаются по «цене»
👉 Опасно в задачах медицины, безопасности, финансов

▶️ Когда Accuracy всё-таки уместна

👉 Классы сбалансированы
👉 FP и FN одинаково критичны
👉 Модель baseline или задача игрушечная
👉 Используется совместно с другими метриками

▶️ Альтернативы

👉 Precision / Recall / F1-score
👉 ROC-AUC / PR-AUC
👉 Balanced Accuracy
👉 Cohen’s Kappa, MCC
👉 Confusion matrix — всегда полезно посмотреть

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

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍841
This media is not supported in your browser
VIEW IN TELEGRAM
🔮 Пора перестать верить в магические модели

И начать их понимать.

📦 InterpretML — мощный open-source фреймворк от Microsoft для интерпретации моделей машинного обучения.

Он объединяет лучшие техники explainability под одной оболочкой:
📝 Обучайте прозрачные модели (glassbox)
📝 Объясняйте поведение черных ящиков (blackbox)
📝 Анализируйте как глобальное поведение, так и отдельные предсказания

Зачем вообще объяснять ML-модель:
✔️ Отладка модели: почему она ошиблась в этом примере
✔️ Feature Engineering: какие признаки реально важны, а что мусор
✔️ Фейрность и этика: не дискриминирует ли модель по полу, возрасту, расе
✔️ Регуляции (законы по контролю ИИ): можем ли мы объяснить, почему модель отказала в кредите
✔️ Человеко-машинное доверие: как врач может поверить в диагноз от модели, если не понимает, почему

Установка:
pip install interpret
# или
conda install -c conda-forge interpret


🔥 Холивар: а вообще, нужно ли объяснять ML-модели?

📝 Мнение №1:
Зачем? Главное — метрика. Если ROC-AUC 0.97 — модель хороша.
→ Black-box → Profit


📝 Мнение №2:
Если ты не можешь объяснить — значит, ты не понимаешь. А значит, и модель не готова к продакшену.


📝 Мнение №3:
Модели должны быть интерпретируемы там, где это критично — медицина, финансы, суд.
В TikTok-рекомендателе — пофиг. В банковском скоринге — нельзя игнорировать.


А как вы считаете? Напишите в комментарии или оставьте реакцию:
🔥 — Да, объяснение критично
❤️ — Нет, главное — точность
👍 — Зависит от задачи

💣 Понравился пост? С ваc буст, а с нас больше топового контента!

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥2
🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам

Дано:
import pandas as pd

data = {
'order_id': [1, 2, 3, 4, 5],
'order_date': ['2023-01-01', '2023-02-15', 'not available', '2023-03-10', '2023-04-05'],
'amount': [100, 150, 200, 130, 170]
}

df = pd.DataFrame(data)
print(df)


Результат:
   order_id    order_date  amount
0 1 2023-01-01 100
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


💡 Задача:

Отфильтровать заказы с датами после 2023-02-01:
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


Вывод:
   order_id     order_date  amount
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


Вопросы:
1. Почему результат фильтрации не соответствует ожиданиям?
2. Как правильно работать с колонкой order_date, чтобы фильтрация по датам работала?

🎯 Подвох:
— Колонка order_date — это строки (object), а не тип datetime.
— Сравнение строк по дате работает не как с датами, а лексикографически.
— Значение 'not available' мешает конвертации.

💡 Решение:
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


pd.to_datetime с errors='coerce' заменит неправильные даты на NaT.
— Фильтрация по datetime теперь корректна.

Итог:
— Всегда проверяйте типы данных перед операциями с датами.
— Обрабатывайте некорректные даты сразу при загрузке.
— Это критично для корректного анализа и отчетности.

Библиотека дата-сайентиста #междусобойчик
5🔥4👍2
💬 Вопрос от подписчика: правда ли, что в AI всё не про нейросети, а про грязную работу с данными

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

Кто-то ещё писал, что с приходом LLM'ов «prompt engineering — это новое программирование».

Это реально так? Или в индустрии всё ещё крутятся вокруг алгоритмов?


Краткий ответ: да, грязной работы больше, чем кажется.

В реальной практике машинного обучения и data science доля «магии» моделей — процентов 10–20. Остальное:
Очистка данных (пропуски, выбросы, баги в логах)
Построение признаков (особенно если данные табличные)
Корректная постановка задачи (что вообще нужно: классификация? ранжирование?)
Проверка данных на утечку или data leakage
Разработка пайплайна для inference
Оценка на offline и онлайн метриках
Мониторинг модели на проде (модели деградируют, и часто незаметно)

Если вы работаете с LLM — то здесь «грязная работа» переезжает в другие места:
Подбор и генерация промтов
Выбор правильного контекста (RAG)
Обработка нестабильных ответов
Постобработка текста
И опять же — валидация, оценка, сбор фидбека

Модели важны, но... чаще всего «достаточно хорошие» уже есть.

Большинство задач в проде не требуют state-of-the-art: достаточно стабильной, воспроизводимой модели, которая работает лучше, чем бизнес-правила.

Модель — это не цель, а инструмент. Иногда даже логистическая регрессия лучше, чем сложная нейросеть (если её проще объяснить и внедрить).

🔄 А вот тот эффект обратной связи — это не миф:
Пример: вы обучили рекомендательную модель на старых данных → модель начала влиять на поведение пользователей → данные изменились → старая метрика уже не отражает качество → вы обновляете модель на новых данных → ещё больше смещений. Добро пожаловать в feedback loops.

Это очень частая история в проде.

👉 А у вас так же? Сколько процентов времени уходит на работу с данными, а не с моделями?

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54💯1
🧠 Генеративные модели: будущее науки или оружие дезинформации

Сегодня генеративные нейросети умеют создавать тексты, изображения, аудио и видео, практически неотличимые от реальных. GPT, DALL·E, Sora, StyleGAN — эти технологии открывают перед человечеством огромные научные перспективы… но вместе с ними и новые риски.

Возможности:
Автоматизация научных открытий

Генерация синтетических данных для обучения моделей

Помощь в программировании, анализе текстов и данных

Поиск и формулировка научных гипотез

Разработка лекарств и новых материалов

Угрозы:
➡️ Deepfake-контент и фейковые аудиозаписи

➡️ Генерация недостоверной информации и псевдонауки

➡️ Снижение доверия к подлинным источникам

➡️ Отсутствие прозрачности в происхождении данных

➡️ Этические и правовые вызовы

Что делать

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

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

📣 А как Вы считаете: генеративный ИИ — это инструмент прогресса или угроза для общества?

❤️ — Безусловно, инструмент прогресса
👍 — Скорее угроза, чем польза

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4👏1🌚1