Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Все самое полезное для дата сайентиста в одном канале. Учиться у нас: clc.to/6qVHgg По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
Show more📈 Analytical overview of Telegram channel Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Channel Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение (@dsproglib) in the Russian language segment is an active participant. Currently, the community unites 18 289 subscribers, ranking 7 130 in the Technologies & Applications category and 35 848 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 289 subscribers.
According to the latest data from 10 November, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -43 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.74%. Within the first 24 hours after publication, content typically collects 3.41% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 233 views. Within the first day, a publication typically gains 624 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 2.
- Thematic interests: Content is focused on key topics such as сайентиста, llm, буст, навигация, openai.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все самое полезное для дата сайентиста в одном канале.
Учиться у нас: clc.to/6qVHgg
По рекламе: @tproger_sales_bot
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9”
Thanks to the high frequency of updates (latest data received on 11 November, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Loading data
| Date | Subscriber Growth | Mentions | Channels | |
| 11 November | +1 | |||
| 10 November | +1 | |||
| 09 November | +1 | |||
| 08 November | +3 | |||
| 07 November | +2 | |||
| 06 November | +2 | |||
| 05 November | +1 | |||
| 04 November | +2 | |||
| 03 November | +3 | |||
| 02 November | +1 | |||
| 01 November | +1 |
| 2 | Optuna: как сообщить pruner, что происходит с trial
Sampler выбирает гиперпараметры, pruner решает, стоит ли досрочно остановить trial. Для решения ему нужны промежуточные значения метрики. Этот API предназначен для оптимизации одной целевой метрики.
В цикле обучения вызывают trial.report(value, step), затем trial.should_prune(). Если ответ True, objective должен поднять optuna.TrialPruned(). Сам вызов report обучение не прекращает.
В официальном примере передают ошибку на валидации после каждого шага. Если objective только вернул финальную метрику, такой истории у pruner нет. Смысл метрики и шага должен быть одинаковым у сравниваемых trial.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 813 |
| 3 | Запрос и документ: две роли в семантическом поиске
В асимметричном поиске по короткому вопросу ищут более длинный абзац с ответом. Sentence Transformers рекомендует encode_query для запроса и encode_document для корпуса.
Методы могут применять промпты и маршрутизацию, сохранённые в конкретной модели. Это не означает, что они всегда используют разные веса.
Если модель не обучалась со специальными prompts или task types, encode, encode_query и encode_document могут вернуть одинаковые эмбеддинги. Выбор подходящей модели и оценка поиска всё равно нужны.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 882 |
| 4 | Включите constrained layout до создания осей
Если подписи осей и шкала colorbar не помещаются, попробуйте plt.subplots(layout="constrained"). Matplotlib перераспределит место между осями и подписями, сохраняя заданную сетку. Включать режим обычно нужно до добавления Axes.
На изображении один и тот же синтетический массив, размер фигуры и шрифт. Сверху — стандартная компоновка с обрезанной подписью. Снизу — constrained layout, где подписи помещаются.
Не добавляйте следом tight_layout(): этот вызов выключает constrained layout. Если места слишком мало, увеличьте фигуру. Произвольные графические элементы всё равно могут обрезаться или перекрываться.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 890 |
| 5 | MLflow: что меняется при переназначении alias
Alias champion в Model Registry можно переназначить с одной версии на другую. При загрузке URI вида models:/fraud@champion MLflow берёт версию, на которую alias указывает в этот момент. Имя fraud здесь условное.
После переназначения следующий вызов load_model по этому URI загрузит новую версию. Уже загруженный Python-объект сам от этого не обновится.
Для воспроизводимого эксперимента сохраняйте номер загруженной версии. Имя champion остаётся подвижной ссылкой и не заменяет проверку модели перед внедрением.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 006 |
| 6 | В парном bootstrap выбирайте строки целиком
Если x и y относятся к одному наблюдению, при пересэмплировании нужно сохранить их пару. Например, для корреляции двух измерений у одних и тех же объектов.
В scipy.stats.bootstrap параметр paired=True выбирает один массив индексов и применяет его ко всем входным массивам. При paired=False каждый массив пересэмплируется независимо. На схеме видно, какие пары сохраняет общий набор индексов.
Одинаковой длины массивов для парности недостаточно: она определяется тем, как собраны данные. Обычный iid bootstrap также не учитывает автоматически временную зависимость или кластеры.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 038 |
| 7 | Почему True | NA даёт True
У nullable boolean в pandas три значения: True, False и NA. Результат будет NA, только если его нельзя определить по известному операнду. Поэтому True | NA даёт True, а True & NA — NA. На карточке — четыре сочетания для dtype="boolean".
У фильтрации другое правило: NA в булевой маске исключает строку. Для данных [10, 20, 30] маска [True, False, NA] оставит [10]. Если нужно сохранить и строки с NA в маске, задайте это явно: фильтрация с mask.fillna(True) оставит [10, 30].
bool(pd.NA) при этом вызывает TypeError: у неизвестного нет однозначного булева значения.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 085 |
| 8 | Куда HistGradientBoosting направляет строки с NaN
В HistGradientBoostingClassifier пропуски можно оставить как NaN. При обучении дерево в каждом разбиении выбирает для них левую или правую ветвь по выигрышу от разбиения. При предсказании использует выученное направление.
Есть отдельный случай: в обучении у этого признака пропусков не было, а при предсказании появился NaN. Тогда строка уйдёт в дочерний узел с большим числом обучающих объектов.
Это поведение конкретного классификатора scikit-learn. Выбирайте между NaN и импутацией по результатам валидации на вашей задаче.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 074 |
| 9 | 📊 Расстояние между распределениями в понятных единицах
В SciPy wasserstein_distance([0, 1, 3], [5, 6, 8]) возвращает 5,0. Второй набор сдвинут на пять единиц. На схеме каждая из трёх масс переносится на это расстояние.
Wasserstein-1 — минимальная стоимость переноса вероятностной массы: масса × расстояние. Для одномерных распределений это также площадь между CDF.
Аргументы функции — наблюдения или значения поддержки, а не частоты гистограммы. Если у значений есть частоты, передавайте их через u_weights и v_weights. Без весов наблюдения равновесны.
Результат измеряется в единицах исходной величины и зависит от масштаба. Это не p-value и не универсальный порог дрейфа данных.
🔗 Функция и примеры SciPy
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 175 |
| 10 | 📊 Выделить область и подсветить точки в Altair
На scatter plot хочется быстро рассмотреть часть объектов. В Altair прямоугольное выделение задаётся через alt.selection_interval() и подключается с add_params(brush).
В официальном примере условие alt.when(brush) сохраняет цвет по числу цилиндров внутри выделения, а остальные точки делает серыми. Это изменение цвета, а не фильтрация данных.
На нашей статичной схеме с синтетическими данными видно, что внешние точки остаются на графике. Потянуть рамку можно в интерактивном примере по ссылке ниже. Его оси — Horsepower и Miles_per_Gallon.
Показанный API с alt.when соответствует текущему примеру Altair 6.
🔗 Интерактивный пример и код
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 151 |
| 11 | 📊 STL: почему period=12, а seasonal=13
Для месячного ряда с годовым циклом period=12 означает 12 наблюдений в сезоне. А seasonal=13 задаёт нечётную длину окна сезонного сглаживания. Это разные параметры.
STL с помощью LOESS раскладывает ряд на тренд, сезонность и остаток. На графике показана декомпозиция синтетического месячного ряда с этими настройками.
robust=True уменьшает влияние больших ошибок через веса при сглаживании. Он не удаляет выбросы из исходных данных.
Сначала проверьте регулярность ряда и смысл выбранного периода. Сама декомпозиция не даёт прогноз. Для него нужна отдельная модель, например в составе STLForecast.
🔗 Разбор STL в statsmodels
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 172 |
| 12 | 🔔 Последние дни акции Proglib Academy! Покупаете один курс — второй получаете в подарок. Успейте до 31 октября.
Можно совместить два направления и прокачать навыки сразу в нескольких областях:
⬆️ ИИ для разработчиков — системная работа с ИИ на всех этапах разработки: от планирования задачи до написания кода, тестирования и ревью.
⬆️ Разработка ИИ-агентов — создание собственных агентов для работы с данными, API и внешними сервисами. В программе — RAG, MCP, LangGraph, n8n и тестирование агентов.
Первый курс поможет встроить ИИ в привычный процесс разработки, второй — перейти к созданию собственных интеллектуальных инструментов.
🎁 А если эти направления не совсем то, что нужно, можно выбрать любые две программы из каталога.
Осталось совсем немного времени — акция заканчивается 31 октября!
👉 Подобрать свою пару курсов | 1 058 |
| 13 | 🧠 Можно ли верить вероятности 0,8
Модель хорошо ранжирует объекты. Это ещё не значит, что её вероятности надёжны. Среди прогнозов около 0,8 у калиброванной бинарной модели должно быть примерно 80% положительных исходов.
Reliability diagram группирует прогнозы в интервалы. По горизонтали — средняя предсказанная вероятность, по вертикали — фактическая доля положительных. На учебном графике 0,9 соответствует доле 0,75: модель излишне уверена.
Калибратор нельзя учить на in-sample прогнозах базовой модели. CalibratedClassifierCV использует для калибровки out-of-fold прогнозы.
Проверяйте число объектов в интервалах. Даже меньший Brier score сам по себе не доказывает лучшую калибровку: он зависит и от других свойств прогноза.
🔗 Калибровка в scikit-learn
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 035 |
| 14 | Алгоритм знает, где вы будете 7-го ноября 😎
RecSys-митап в Москве для тех, кто уже строит рекомендательные системы и хочет делать это еще лучше.
В программе — доклады от топовых экспертов Сбера с разбором кейсов, свежих подходов и неочевидных решений.
После официальной части — нетворкинг. Время в узком кругу профессионалов и сообщества Зеленый RecSys.
Участие бесплатное, но количество мест ограничено.
Москва. Суббота. 7 ноября. RecSys!
➡️ регистрируйтесь | 1 364 |
| 15 | 📊 Две строки превратились в четыре после merge
Заказы соединяют со справочником клиентов, а сумма покупок вдруг удваивается. Частая причина: ключ справочника оказался неуникальным.
На схеме у customer=7 две строки слева и две справа. Каждая левая совпадёт с каждой правой: 2 × 2 = 4 строки.
Если ожидаете «много заказов → один клиент», добавьте validate="many_to_one" в merge. pandas проверит уникальность правого ключа и на таком справочнике выбросит MergeError.
Для поиска заказов без пары пригодятся how="left", indicator=True и метка left_only. Учтите: null-ключи в pandas совпадают друг с другом, в отличие от обычного SQL.
🔗 Параметры pandas.merge
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 221 |
| 16 | ⚡ Только до 31 октября: покупайте один курс Proglib Academy и получайте второй в подарок!
Что можно освоить?
⏬ ИИ для разработчиков — применение ИИ на разных этапах разработки: от работы с кодом до тестирования, ревью и организации рабочего процесса.
⏬ Разработка ИИ-агентов — создание собственных агентов с памятью, интеграциями и доступом к внешним инструментам.
Научитесь не просто работать с нейросетями, а создавать решения, которые помогают автоматизировать реальные задачи 📍
Можно выбрать эту пару или сочетать любые другие курсы из каталога — под свои интересы и цели.
🎁 Один курс оплачиваете, второй получаете бесплатно. Акция длится до 31 октября.
✨ Прокачать скиллы по акции | 1 233 |
| 17 | 📊 Сколько запросов укладывается в 120 мс
Гистограмма показывает форму распределения, но долю до конкретного порога удобнее читать по ECDF. Ей не нужны интервалы гистограммы или сглаживание.
На синтетическом примере 5 из 8 задержек не превышают 120 мс. Значит, F(120) = 62,5%. Наблюдения ровно на пороге тоже учитываются.
В seaborn это sns.ecdfplot(x=latency_ms). Параметр complementary=True показывает 1 − F: здесь 37,5% запросов строго дольше 120 мс.
Это доля в выборке, а не гарантия для будущего трафика. С весами доля будет взвешенной.
🔗 ECDF в seaborn
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 245 |
| 18 | Скиллов для AI-агентов становится всё больше, и уже непонятно, что где используется и как работает!
Мы делаем Hollon AMS. В визуальном редакторе из скиллов собираются процессы, для них задаются общие правила, а разных AI-агентов можно подключить через MCP. Разработчик может прогонять сценарии и разбираться, где что сломалось. Тимлид или CTO видит, как устроены процессы, какие у них версии и что они дают по KPI.
Это не только про разработку: подойдёт для любого процесса, который можно отдать AI-агенту. Попробовать можно в облаке, а для компаний есть возможность развёртывания в закрытом контуре.
Попробуйте собрать первый процесс
Если интересны готовые кейсы или хочется обсудить свой, пишите: dmitriy.parasyna@hollon.tech | 992 |
| 19 | 🧠 Один клиент и в train, и в test?
У клиента десять событий. Случайно разделили строки, и часть его истории оказалась по обе стороны. Такая проверка уже не отвечает на вопрос «как модель работает на новых клиентах».
GroupKFold разделяет целые группы. На схеме у каждого клиента две строки, и в каждом разбиении они вместе. За три фолда каждая группа один раз становится тестовой.
Передайте идентификатор клиента в groups и проверьте, что множества групп train и test не пересекаются. Уникальных групп должно быть не меньше числа фолдов.
Хронологию и баланс классов этот метод не гарантирует. Преобразования данных обучайте только на train каждого фолда.
🔗 Документация GroupKFold
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 277 |
| 20 | Как присоединить значение, известное на момент события
Датчик прислал событие в 10:05, а настройки менялись в 10:00 и 10:10. Для анализа нужна настройка из 10:00. Обычное равенство времён её не найдёт, а ближайшая точка без направления может оказаться из будущего.
В DuckDB для этого подходит ASOF LEFT JOIN. Соединяйте по одинаковому sensor_id и условию event_time >= setting_time. Тогда для каждого события выбирается последнее значение справа с временем не позже события, включая точное совпадение. В примере предполагается одна настройка на пару «датчик + время».
Совпадение будет максимум одно. Если подходящей настройки нет, LEFT сохранит событие и вернёт NULL в правых полях. Без LEFT такая строка пропадёт.
Для проверки выведите обе временные метки явно. И отдельно учитывайте, когда запись реально стала доступна: старое время события не спасёт от утечки, если сама запись поступила позже. ASOF задаёт правило сопоставления, а не проверяет всю историю доступности данных.
ASOF JOIN в DuckDB
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека дата-сайентиста | 1 298 |
