Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Все самое полезное для дата сайентиста в одном канале. Учиться у нас: clc.to/6qVHgg По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
نمایش بیشتر📈 تحلیل کانال تلگرام Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
کانال Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение (@dsproglib) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 18 453 مشترک است و جایگاه 7 203 را در دسته فناوری و برنامهها و رتبه 36 416 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 18 453 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 30 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -69 و در ۲۴ ساعت گذشته برابر -1 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 7.26% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.10% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 340 بازدید دریافت میکند. در اولین روز معمولاً 756 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 7 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند сайентиста, llm, буст, навигация, openai تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Все самое полезное для дата сайентиста в одном канале.
Учиться у нас: clc.to/6qVHgg
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 01 ژوئیه, 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. Скрипт обучения и ретроспектива опубликованы — можно воспроизвести самостоятельно.
➡️ Фреймворк
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста
#буст
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
