Telegram Web
📌 Промт дня: как обрабатывать пропущенные значения в данных

Пропуски в данных — не просто шум, а важный сигнал. Как вы их обработаете — влияет на всё: от качества модели до честности метрик.

🎯 Вот промт, который можно дать ChatGPT, чтобы продумать стратегию:
У меня есть датафрейм с пропущенными значениями. Помоги:

– Проанализировать, в каких признаках есть пропуски и сколько их
– Разделить признаки на числовые и категориальные
– Предложить разумные стратегии для каждого типа (например: среднее, медиана, мода, отдельная категория, KNN, IterativeImputer)
– Добавить индикаторные признаки “was\_missing”, если это может быть полезно
– Проверить, связаны ли пропуски с целевой переменной
– Посоветовать визуализации, чтобы увидеть структуру пропусков (heatmap, matrix и т.п.)
– Указать, какие признаки стоит удалить из-за большого числа пропусков


💡 Подходит для ChatGPT в режиме кода или анализа пайплайна. Используйте этот промт, чтобы сэкономить время и продумать работу с пропусками системно.

Библиотека дата-сайентиста #буст
👍42
💬 Истории подписчиков: стоит ли переходить с 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
🚨 Pointblank — мощный инструмент для валидации данных

Если вы дата-сайентист, аналитик или инженер данных — эта библиотека точно заслуживает вашего внимания.

С интуитивным и цепочечным API, Pointblank позволяет:
— запускать точечные проверки качества данных,
— отслеживать критичные ошибки,
— автоматически формировать интерактивные отчёты,
— интегрироваться с Slack и другими системами.

Идеально для пайплайнов на pandas, polars или ibis.

Пример базовой валидации:
import pointblank as pb

validation = (
pb.Validate(data=pb.load_dataset("small_table"))
.col_vals_gt(columns="d", value=100) # Значения > 100
.col_vals_le(columns="c", value=5) # Значения <= 5
.col_exists(columns=["date", "date_time"]) # Проверка наличия колонок
.interrogate() # Выполнить валидацию
)

validation.get_tabular_report().show()


Реальный пример на Polars:
import pointblank as pb
import polars as pl

sales_data = pl.read_csv("sales_data.csv")

validation = (
pb.Validate(
data=sales_data,
tbl_name="sales_data",
label="Валидация реальных данных",
thresholds=(0.01, 0.02, 0.05),
actions=pb.Actions(
critical="Критичная ошибка качества данных на шаге {step} ({time})."
),
final_actions=pb.FinalActions(
pb.send_slack_notification("https://hooks.slack.com/services/your/webhook/url")
),
brief=True,
)
.col_vals_between(columns=["price", "quantity"], left=0, right=1000)
.col_vals_not_null(columns=pb.ends_with("_id"))
.col_vals_regex(columns="email", pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$")
.col_vals_in_set(columns="status", set=["pending", "shipped", "delivered", "returned"])
.conjointly(
lambda df: pb.expr_col("revenue") == pb.expr_col("price") * pb.expr_col("quantity"),
lambda df: pb.expr_col("tax") >= pb.expr_col("revenue") * 0.05
)
.interrogate()
)

# HTML-отчёт можно открыть в браузере:
validation.get_tabular_report().show("browser")


🛠 Установка:
pip install pointblank
# или с нужным бэкендом:
pip install "pointblank[pl]" # с Polars
pip install "pointblank[pd]" # с Pandas
pip install "pointblank[duckdb]" # с DuckDB (через Ibis)
pip install "pointblank[postgres]" # с PostgreSQL


Под капотом

Pointblank работает с Polars, Pandas и Ibis (через Narwhals) — то есть вы можете валидировать данные не только из CSV, но и из баз данных (PostgreSQL, MySQL, DuckDB и др.).

👉 Ссылка на проект: https://clc.to/Ep7oDQ

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🌧️ Облачная терапия: время выговориться!

Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».

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

🤫 О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов

⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
🏃‍♀️ 1 день до конца спец предложения

У
спей впрыгнуть на курс «AI-агенты для DS» до завтрашнего повышения цены: 59.000 р. вместо 69.000 р.

🎙 Наш спикер — Никита Зелинский, Chief Data Scientist МТС, в своем канале рассказывает о RAG:

Про RAG слышали все — это уже два года самый массовый способ применения LLM в проде для бизнеса.

Это значит, что точность и надёжность такого решения достаточно предсказуемы для того, чтобы исключить человека из процесса аппрува выдачи LLM,
а связка «локально развернутая LLM + RAG над корпоративными документами» обеспечивает достаточную конфиденциальность, чтобы снять тревожность
«что наши данные попадут в OpenAI».

Эта история настолько популярна, что на рынке есть готовые RAG-решения,
а даже «маленькие» опенсорс-модели (до 5B) уже обзавелись своей RAG-ареной:
👉 https://huggingface.co/spaces/aizip-dev/SLM-RAG-Arena


Во время обучения на курсе «AI-агенты для DS» научим собирать автономные системы под реальные бизнес-задачи. На прошлой неделе мы рассказали о первом занятии.

➡️ вот что ждет слушателей курса на втором:

— Собираем свой RAG-пайплайн на своих данных
— Обсуждаем, почему качество такой системы нельзя измерять «на глаз»
— Разбираем схему LLM as a Judge и как подготовить для неё датасет
— Что такое guardrails и как они спасают от бреда
— Что делать, когда LLM не знает ответа
— Смотрим на агентский RAG и обсуждаем, можно ли использовать RAG как память агента

Если пропустили первое занятие, то вот ссылочка

❗️До повышения цены остался последний день — бронируйте место сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🆎 Что делать, если A/B-тесты врут

Классическая схема A/B-разбиения работает, только если пользователи не влияют друг на друга. Но что, если это не так?

Такси, доставка, соцсети — в таких системах старый добрый user_id → контроль / тест уже не спасает. Метрики искажаются, а выводы могут привести к ошибочным решениям.

👉 В карточках — 5 важных выводов.

🔗 В статье — разбор альтернатив: https://proglib.io/sh/lNqAnLfe9J

Библиотека дата-сайентиста #буст
👍5🔥21
😱 Завтра цена на курс «AI-агенты для DS» вырастет

Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.

🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Решение за вами.

👉 Купить курс по старой цене
1
🕵️‍♂️ 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👍4🔥1
✈️ Свежие новости из мира AI и Data Science

🚀 Модели, конференции и релизы:
CVPR 2025 — главная конференция по компьютерному зрению уже в июне: новые статьи, прорывы и тренды
OpenAI o3-pro — новая reasoning-модель с пошаговым решением задач и улучшенной стабильностью
Magistral от Mistral — open-source reasoning-модель с мультилингвальностью и высокой скоростью
Блог Сэма Альтмана — как мы вступаем в эру суперразума: когнитивные агенты, наука и роботы до 2027
Scikit-learn 1.7 — свежий релиз с полезными улучшениями

🧠 Исследования и практика:
Claude Code Tips — как в Anthropic используют Claude 4 как код-ассистента и агент
Футбол + байесовщина — предсказание матчей в реальном времени: статистика в действии

Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
💫 Топ-вакансий для дата-сайентистов за неделю

Data Engineer —‍ от 400 000 до 500 000 ₽, гибрид (Москва)

Дата-аналитик (Бизнес-юнит) —‍ от 200 000 ₽, гибрид (Санкт-Петербург)

Product Lead (Acquisition), гибрид (Санкт-Петербург, Тбилиси)

ML Engineer (Почта) —‍ от 200 000 до 500 000 ₽, гибрид (Москва)

Data Engineer, удалёнка

Data Governance Analyst, удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Data jobs

Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🛠 How-to: что полезного появилось в NumPy 2.3.0 — и как это использовать

NumPy 2.3.0 — не просто «ещё один апдейт», а шаг в будущее Python-научных расчётов. Вот как можно применять новые фичи уже сейчас — и чем они вам помогут.

1️⃣ Быстрая нарезка строк: numpy.strings.slice

Новая C-ускоренная функция для нарезки строк в массиве:
import numpy as np

arr = np.array(["пример", "строка", "массив"], dtype="U")
sliced = np.strings.slice(arr, start=1, stop=-1)
print(sliced) # ['риме' 'трок' 'асси']


➡️ Поддерживает шаг, отрицательные индексы, работает на массиве сразу
➡️ Быстрее, чем str[i:j] в цикле

Где использовать:
— При очистке или стандартизации текстов
— При подготовке NLP-данных
— При обработке колонок со строками в датафреймах

2️⃣ Проверка на уникальность через set

Актуально всегда, но особенно в свете ускорений для Python без GIL:
numbers = [1, 2, 3, 2, 4]
is_unique = len(numbers) == len(set(numbers))


➡️ Раньше → медленно на больших массивах
➡️ Теперь → работает быстро даже в многопотоке, особенно с free-threaded Python

3️⃣ Ускоряйте поиск через set

До:
if "слово" in words:  # медленно, если words — список


Теперь:
word_set = set(words)
if "слово" in word_set: # мгновенно


➡️ Используйте set() для ускорения любых операций типа in, особенно в циклах.

4️⃣ Параллельные сборки через OpenMP

Теперь можно собирать NumPy с OpenMP:
CFLAGS="-fopenmp" python -m pip install .


Зачем:
— Ускорение NumPy-функций в CPU-heavy задачах
— Поддержка многопотока без GIL (free-threaded Python)

Подходит для:
— Data processing pipelines
— Объёмных array-вычислений
— Самописных модулей с NumPy в backend

5️⃣ Поддержка Windows on ARM (предварительно)

Если вы на ARM-ноутбуке (например, Surface или Snapdragon), NumPy теперь работает. Поддержка пока базовая, но этого уже достаточно для простых задач и Jupyter-анализа.

6️⃣ Free-threaded Python: под капотом

Пока что для большинства — «магия под капотом». Но если вы:
— Пишете ML/DS пайплайны
— Используете concurrent.futures или async
— Работаете с multiprocessing/shared memory

➡️ Вам станет проще и быстрее. NumPy уже готов к миру без GIL.


🔗 Документация с интерактивными примерами: https://clc.to/YxihAw

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
2025/07/08 23:34:16
Back to Top
HTML Embed Code: