Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Все самое полезное для дата сайентиста в одном канале. Учиться у нас: clc.to/6qVHgg По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
显示更多📈 Telegram 频道 Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение 的分析概览
频道 Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение (@dsproglib) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 18 453 名订阅者,在 技术与应用 类别中位列第 7 203,并在 俄罗斯 地区排名第 36 416 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 18 453 名订阅者。
根据 01 七月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -63,过去 24 小时变化为 -3,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 7.23%。内容发布后 24 小时内通常能获得 3.99% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 335 次浏览,首日通常累积 737 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 7。
- 主题关注点: 内容集中在 сайентиста, llm, буст, навигация, openai 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Все самое полезное для дата сайентиста в одном канале.
Учиться у нас: clc.to/6qVHgg
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9”
凭借高频更新(最新数据采集于 02 七月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
● При покупке VIP-тарифа (осталось 4 места) нового потока «Разработка ИИ-агентов» получаете в подарок курс «AgentOps» + ещё один любой курс Академии (например, «Математика для разработки AI», чтобы глубже освоить направление). ● Три курса обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽. ● Доступна удобная беспроцентная рассрочка, платеж можно разбить на несколько комфортных частей.Хотите прокачать свое портфолио продакшн-кейсом, но пока сомневаетесь? Пройдите наш бесплатный демо-урок, чтобы протестировать формат перед покупкой. 👉 Забрать 3 курса по цене 1 и получить демо-урок
# x: [B, F, N, D] # Temporal attention — последовательность это кадры x_t = rearrange(x, "b f n d -> (b n) f d") x_t = temporal_attention(x_t, x_t, x_t) x = rearrange(x_t, "(b n) f d -> b f n d", n=N) # Spatial attention — последовательность это патчи x_s = rearrange(x, "b f n d -> (b f) n d") x_s = spatial_attention(x_s, x_s, x_s) x = rearrange(x_s, "(b f) n d -> b f n d", f=F)Просто перекладываем тензор — и стандартный attention блок работает нужным образом. 🔗 Ссылка на пост 📍 Навигация: Вакансии • Задачи • Собесы Библиотека дата-сайентиста #буст
from category_encoders import TargetEncoder
enc = TargetEncoder()
X_train['city'] = enc.fit_transform(X_train['city'], y_train)
📊 Frequency encoding — заменяем категорию её частотой в данных. Просто, без утечки, хорошо работает с деревьями:
freq = df['city'].value_counts(normalize=True)
df['city_freq'] = df['city'].map(freq)
🌀 Cyclic encoding — для часа, дня недели, месяца. Синус и косинус сохраняют цикличность:
df['hour_sin'] = np.sin(2 * np.pi * df['hour'] / 24)
df['hour_cos'] = np.cos(2 * np.pi * df['hour'] / 24)
📋 Шпаргалка выбора
- Мало уникальных значений (< 15) → one-hot
- Есть порядок → ordinal encoding
- Высокая кардинальность → target или frequency encoding
- Временные признаки → cyclic encoding
- XGBoost / LightGBM → нативная поддержка категорий, можно не кодировать вообще
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст— При покупке VIP-тарифа (осталось 4 места) нового потока «ИИ-агенты» вы получаете в подарок доступ к курсу «AgentOps» + ещё один любой курс Академии на выбор — В деньгах это два топовых курса по автоматизации и контролю ИИ всего за 134.000 ₽ вместо 263.000 ₽ 🔥 А за счет третьего курса (например, можно выбрать «Математику») вы соберете мощный стек и освоите целое востребованное направление. — Платеж можно разбить на несколько частей с помощью беспроцентной рассрочки.👉 Получить демо-урок и зафиксировать спецпредложение 3 в 1
A AND NOT(A)
— x > 5 AND x <= 5
— is_in([]) — пустое множество
— a > 5 AND a < 3 — несовместимые диапазоны
— два непересекающихся is_between
— a == 5 AND a > 10
Полезно при программно генерируемых фильтрах где параметры могут дать low > high или взаимоисключающие условия. Никаких изменений в коде не нужно.
3️⃣ is_sorted() для DataFrame и Expr
Series.is_sorted() давно есть, теперь добавили для DataFrame и выражений:
df.is_sorted("a") # True/False
df.is_sorted("b", descending=True)
df.select(pl.col("a").is_sorted()) # внутри select/filter
Поддерживает descending и nulls_last. Пока помечено как unstable.
🔛 Релиз-блог
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст
df.query("age > 30 and city == 'Moscow'")
df.query("category in @my_list") # переменные через @
Новые колонки
np.select() для нескольких условий вместо вложенных np.where():
conditions = [df.score > 90, df.score > 70, df.score > 50]
choices = ["A", "B", "C"]
df["grade"] = np.select(conditions, choices, default="F")
Пропуски
Процент null по каждой колонке — одной строкой:
df.isnull().mean().sort_values(ascending=False)
Удалить колонки где больше 50% null:
df.dropna(thresh=len(df) * 0.5, axis=1)
Агрегация
Именованные агрегации — результат сразу с нужными именами:
df.groupby("region").agg(
total_sales=("sales", "sum"),
avg_rating=("rating", "mean"),
n_orders=("order_id", "count"),
)
transform() — добавить агрегат как колонку не теряя строки:
df["pct_of_region"] = df["sales"] / df.groupby("region")["sales"].transform("sum")
Feature engineering
Процентильный ранг:
df["rank"] = df["sales"].rank(pct=True)
Биннинг:
df["bucket"] = pd.cut(df["age"], bins=[0,18,35,60,100],
labels=["teen","young","mid","senior"])
Z-score для поиска выбросов:
from scipy import stats
df["zscore"] = stats.zscore(df["value"])
outliers = df[df["zscore"].abs() > 3]
Даты
Компоненты даты сразу все:
df["year"] = df["date"].dt.year
df["month"] = df["date"].dt.month
df["weekday"] = df["date"].dt.day_name()
df["is_weekend"] = df["date"].dt.dayofweek >= 5
✔️ Больше хитростей в прикрепленной шпаргалке
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст
# было:
# optimizer = torch.optim.AdamW(model.parameters(), lr=1e-3)
# стало:
from gefen import Gefen
optimizer = Gefen(model.parameters(), lr=1e-3)
➡️ Gefen квантизирует состояния оптимизатора до 8 бит используя подход основанный на блочно-диагональном приближении матрицы Гессиана. Это не просто округление — точность квантизации подбирается так чтобы не ронять качество обучения.
➡️ Работает с PyTorch DDP, FSDP, DeepSpeed ZeRO. Интегрируется в Hugging Face Trainer через optimizer_cls_and_kwargs. Есть версия GefenMuon — Muon с 4-кратным сокращением памяти оптимизатора.
pip install gefen
🔗 Ссылка на Gefen
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#бустRNN → простая, страдает от vanishing gradient LSTM → long + short memory, 3 гейта, решает vanishing GRU → упрощённый LSTM, 2 гейта, быстрее обучается Bi-RNN → читает последовательность в обе стороныКогда что брать — Короткие последовательности → RNN (или вообще не RNN) — Длинные зависимости → LSTM — Скорость важнее качества → GRU — Нужен контекст с обеих сторон → Bi-LSTM / Bi-GRU — Очень длинные последовательности → Transformer PyTorch — минимально
lstm = nn.LSTM(input_size=10, hidden_size=64,
num_layers=2, batch_first=True)
out, (h_n, c_n) = lstm(x) # x: (batch, seq_len, input_size)
Типичные проблемы
— Vanishing gradient → LSTM/GRU + gradient clipping
— Exploding gradient → clip_grad_norm_ с порогом 1.0
— Переобучение → dropout между слоями
— Медленно → GRU вместо LSTM, или Transformer
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст500 байт/запись × 10 000 запросов/с × 100 записей/запрос = 500 МБ/с Лимит одной партиции = 24 МБ/с Нужно минимум 21 партицияНаивные решения и почему они не работают Случайный суффикс → нельзя искать по значению, не знаешь в какой партиции данные. Хэш от значения → данные распределены равномерно, но порядок потерян. Нельзя вернуть отсортированный результат. Первый символ → 5 400 уникальных символов в реальных данных (Unicode), часть символов всё равно не помещается в одну партицию. Правильное решение: границы по перцентилям Разбить отсортированные данные на N равных диапазонов и сохранить граничные значения:
import bisect, unicodedata
# Предварительно вычисленные границы из реальных данных
BOUNDARIES = ['', 'agartha', 'barstow', 'can you', ...]
def shard_id(title):
normalized = unicodedata.normalize('NFKD', title.lower())
return bisect.bisect(BOUNDARIES, normalized) - 1
Поиск границы — O(log n) через bisect, константа с предвычисленным списком.
Урок для дата сайнтиста
Это та же проблема что при партиционировании данных в pandas, Spark или Polars: если партиции неравномерные — одни воркеры простаивают, другие перегружены (data skew).
Решение одинаковое: не делить по первому символу или хэшу, а вычислять границы по перцентилям реального распределения данных. В Spark это называется range partitioning, в pandas — pd.qcut.
Данные всегда распределены неравномерно. Проектировать партиции нужно под реальное распределение, а не под удобство.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#бустДля этого курса мы ищем классных спикеров-практиков.➡️ Что требуется от вас? ● BigTech бэкграунд: опыт работы разработчиком, тимлидом или архитектором в крупных технологических компаниях. ● Опыт управляемой разработки с ИИ: вы на практике знаете, как встроить AI-инструменты в личный или командный workflow (от постановки задачи до ревью AI-кода). ● Системный подход: умение превращать хаотичную генерацию кода в предсказуемый инженерный процесс (работа с архитектурой, чек-листами, легаси и покрытием тестами). ➡️ Что мы предлагаем? ● Достойную оплату за подготовку материалов и проведение занятий. ● Мощное продвижение личного бренда через медиаресурсы Proglib (наша аудитория — 1 млн+ айтишников). ● Возможность публиковать свои экспертные материалы и статьи на наших площадках. ● Доступ к сильному и закрытому профессиональному сообществу. Также мы ищем консультанта программы. Если вы практикующий эксперт и готовы помочь нам отвалидировать программу курса, дать рекомендации по актуальности тем и финальным результатам обучения — мы вас очень ждем. ➡️ Как с нами связаться: Telegram: @alinaa_kh E-mail: alina@proglib.io
«AI-инструменты в разработке: пишем код быстрее»Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины. 🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei). 👉 Узнать, как ускорить разработку с AI
tinystories_tokenized = default_tokenize(
name="roneneldan/TinyStories",
tokenizer=llama3_tokenizer,
)
model = default_train(
name="marin-nano-tinystories",
tokenized=tinystories_tokenized, # зависимость явная
model_config=llama_nano,
train_config=nano_train_config,
)
С помощью Marin обучили первую open-source 8B модель которая превзошла Llama 3.1 8B. Скрипт обучения и ретроспектива опубликованы — можно воспроизвести самостоятельно.
➡️ Фреймворк
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
