Библиотека дата-сайентиста | 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 274 subscribers, ranking 7 159 in the Technologies & Applications category and 35 906 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 274 subscribers.
According to the latest data from 11 November, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -58 over the last 30 days and by -9 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.78%. Within the first 24 hours after publication, content typically collects 3.44% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 240 views. Within the first day, a publication typically gains 628 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 12 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 | |
| 12 November | +1 | |||
| 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 |
➡️ «ИИ для разработчиков» — соберите собственный рабочий процесс с AI: от планирования и написания кода до тестирования и code review. ➡️ «Разработка ИИ-агентов» — научитесь создавать агентов, которые умеют работать с API, базами знаний и внешними инструментами, выполнять последовательность действий и решать прикладные задачи.⏬ Вы получите два взаимодополняющих навыка: эффективную AI-разработку и инженерное создание AI-агентов за 59 000 ₽. 📍 Покупаете один курс, второй - в подарок. Не упустите свой шанс прокачаться - только до 15 ноября 😏
| 2 | 🛡️ Монотонность в XGBoost: задаём направление
Параметр monotone_constraints задаёт правило при фиксированных остальных признаках: +1 — предсказание не убывает, −1 — не возрастает, 0 — ограничения нет. Плоские участки допустимы.
На графике из документации XGBoost чёрные линии показывают модель с ограничениями на синтетических данных. Остальной признак зафиксирован на среднем значении. Колебания, нарушающие заданное направление, исчезают.
Ограничение выражает предположение о задаче. Причинную связь или рост точности оно не доказывает. Сравните качество на отложенных данных.
При hist и approx деревья могут стать слишком неглубокими: ограничения исключают кандидатов разбиения. Документация предлагает попробовать увеличить max_bin.
🔗 Параметры и пример
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 639 |
| 3 | 🧠 Что средняя PDP скрывает за одной линией
На графике из документации scikit-learn тонкие линии — ICE: для каждого объекта меняют один признак, фиксируют остальные и считают предсказания модели. Пунктир — PDP, среднее этих линий.
Посмотрите на влажность справа. У одних объектов предсказания почти не меняются, у других резко падают. Средняя линия сглаживает это различие. ICE помогает увидеть неоднородность, связанную с взаимодействиями признаков.
Пример построен на данных велопроката с HistGradientBoostingRegressor. Он показывает поведение модели, а не причинный эффект погоды. При коррелированных признаках PDP и ICE могут оценивать нереалистичные сочетания значений.
🔗 Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 789 |
| 4 | 🧠 Когда важный признак получает низкую importance
У двух признаков сильная корреляция. При расчёте permutation importance перемешиваем один из них. Модель может по-прежнему получать похожую информацию из второго, и метрика почти не изменится. То же может произойти, если отдельно перемешать второй признак.
Низкая importance каждого по отдельности ещё не означает, что вся группа бесполезна. Этот показатель описывает зависимость конкретной обученной модели от признака на выбранных данных и с выбранной метрикой. Причинный эффект он не измеряет.
Перед удалением таких столбцов проверьте корреляции. В документации scikit-learn предлагают один из подходов: объединить коррелированные признаки в кластеры и оставить представителя каждого. Сравните качество моделей на отложенных данных. Сам по себе новый рейтинг признаков улучшение не доказывает.
🔗 Разбор в документации
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 874 |
| 5 | Optuna: как сообщить pruner, что происходит с trial
Sampler выбирает гиперпараметры, pruner решает, стоит ли досрочно остановить trial. Для решения ему нужны промежуточные значения метрики. Этот API предназначен для оптимизации одной целевой метрики.
В цикле обучения вызывают trial.report(value, step), затем trial.should_prune(). Если ответ True, objective должен поднять optuna.TrialPruned(). Сам вызов report обучение не прекращает.
В официальном примере передают ошибку на валидации после каждого шага. Если objective только вернул финальную метрику, такой истории у pruner нет. Смысл метрики и шага должен быть одинаковым у сравниваемых trial.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 001 |
| 6 | Запрос и документ: две роли в семантическом поиске
В асимметричном поиске по короткому вопросу ищут более длинный абзац с ответом. Sentence Transformers рекомендует encode_query для запроса и encode_document для корпуса.
Методы могут применять промпты и маршрутизацию, сохранённые в конкретной модели. Это не означает, что они всегда используют разные веса.
Если модель не обучалась со специальными prompts или task types, encode, encode_query и encode_document могут вернуть одинаковые эмбеддинги. Выбор подходящей модели и оценка поиска всё равно нужны.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 997 |
| 7 | Включите constrained layout до создания осей
Если подписи осей и шкала colorbar не помещаются, попробуйте plt.subplots(layout="constrained"). Matplotlib перераспределит место между осями и подписями, сохраняя заданную сетку. Включать режим обычно нужно до добавления Axes.
На изображении один и тот же синтетический массив, размер фигуры и шрифт. Сверху — стандартная компоновка с обрезанной подписью. Снизу — constrained layout, где подписи помещаются.
Не добавляйте следом tight_layout(): этот вызов выключает constrained layout. Если места слишком мало, увеличьте фигуру. Произвольные графические элементы всё равно могут обрезаться или перекрываться.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 964 |
| 8 | MLflow: что меняется при переназначении alias
Alias champion в Model Registry можно переназначить с одной версии на другую. При загрузке URI вида models:/fraud@champion MLflow берёт версию, на которую alias указывает в этот момент. Имя fraud здесь условное.
После переназначения следующий вызов load_model по этому URI загрузит новую версию. Уже загруженный Python-объект сам от этого не обновится.
Для воспроизводимого эксперимента сохраняйте номер загруженной версии. Имя champion остаётся подвижной ссылкой и не заменяет проверку модели перед внедрением.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 077 |
| 9 | В парном bootstrap выбирайте строки целиком
Если x и y относятся к одному наблюдению, при пересэмплировании нужно сохранить их пару. Например, для корреляции двух измерений у одних и тех же объектов.
В scipy.stats.bootstrap параметр paired=True выбирает один массив индексов и применяет его ко всем входным массивам. При paired=False каждый массив пересэмплируется независимо. На схеме видно, какие пары сохраняет общий набор индексов.
Одинаковой длины массивов для парности недостаточно: она определяется тем, как собраны данные. Обычный iid bootstrap также не учитывает автоматически временную зависимость или кластеры.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 067 |
| 10 | Почему 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 130 |
| 11 | Куда HistGradientBoosting направляет строки с NaN
В HistGradientBoostingClassifier пропуски можно оставить как NaN. При обучении дерево в каждом разбиении выбирает для них левую или правую ветвь по выигрышу от разбиения. При предсказании использует выученное направление.
Есть отдельный случай: в обучении у этого признака пропусков не было, а при предсказании появился NaN. Тогда строка уйдёт в дочерний узел с большим числом обучающих объектов.
Это поведение конкретного классификатора scikit-learn. Выбирайте между NaN и импутацией по результатам валидации на вашей задаче.
Документация и примеры
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 134 |
| 12 | 📊 Расстояние между распределениями в понятных единицах
В SciPy wasserstein_distance([0, 1, 3], [5, 6, 8]) возвращает 5,0. Второй набор сдвинут на пять единиц. На схеме каждая из трёх масс переносится на это расстояние.
Wasserstein-1 — минимальная стоимость переноса вероятностной массы: масса × расстояние. Для одномерных распределений это также площадь между CDF.
Аргументы функции — наблюдения или значения поддержки, а не частоты гистограммы. Если у значений есть частоты, передавайте их через u_weights и v_weights. Без весов наблюдения равновесны.
Результат измеряется в единицах исходной величины и зависит от масштаба. Это не p-value и не универсальный порог дрейфа данных.
🔗 Функция и примеры SciPy
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 211 |
| 13 | 📊 Выделить область и подсветить точки в Altair
На scatter plot хочется быстро рассмотреть часть объектов. В Altair прямоугольное выделение задаётся через alt.selection_interval() и подключается с add_params(brush).
В официальном примере условие alt.when(brush) сохраняет цвет по числу цилиндров внутри выделения, а остальные точки делает серыми. Это изменение цвета, а не фильтрация данных.
На нашей статичной схеме с синтетическими данными видно, что внешние точки остаются на графике. Потянуть рамку можно в интерактивном примере по ссылке ниже. Его оси — Horsepower и Miles_per_Gallon.
Показанный API с alt.when соответствует текущему примеру Altair 6.
🔗 Интерактивный пример и код
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 172 |
| 14 | 📊 STL: почему period=12, а seasonal=13
Для месячного ряда с годовым циклом period=12 означает 12 наблюдений в сезоне. А seasonal=13 задаёт нечётную длину окна сезонного сглаживания. Это разные параметры.
STL с помощью LOESS раскладывает ряд на тренд, сезонность и остаток. На графике показана декомпозиция синтетического месячного ряда с этими настройками.
robust=True уменьшает влияние больших ошибок через веса при сглаживании. Он не удаляет выбросы из исходных данных.
Сначала проверьте регулярность ряда и смысл выбранного периода. Сама декомпозиция не даёт прогноз. Для него нужна отдельная модель, например в составе STLForecast.
🔗 Разбор STL в statsmodels
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 193 |
| 15 | 🔔 Последние дни акции Proglib Academy! Покупаете один курс — второй получаете в подарок. Успейте до 31 октября.
Можно совместить два направления и прокачать навыки сразу в нескольких областях:
⬆️ ИИ для разработчиков — системная работа с ИИ на всех этапах разработки: от планирования задачи до написания кода, тестирования и ревью.
⬆️ Разработка ИИ-агентов — создание собственных агентов для работы с данными, API и внешними сервисами. В программе — RAG, MCP, LangGraph, n8n и тестирование агентов.
Первый курс поможет встроить ИИ в привычный процесс разработки, второй — перейти к созданию собственных интеллектуальных инструментов.
🎁 А если эти направления не совсем то, что нужно, можно выбрать любые две программы из каталога.
Осталось совсем немного времени — акция заканчивается 31 октября!
👉 Подобрать свою пару курсов | 1 164 |
| 16 | 🧠 Можно ли верить вероятности 0,8
Модель хорошо ранжирует объекты. Это ещё не значит, что её вероятности надёжны. Среди прогнозов около 0,8 у калиброванной бинарной модели должно быть примерно 80% положительных исходов.
Reliability diagram группирует прогнозы в интервалы. По горизонтали — средняя предсказанная вероятность, по вертикали — фактическая доля положительных. На учебном графике 0,9 соответствует доле 0,75: модель излишне уверена.
Калибратор нельзя учить на in-sample прогнозах базовой модели. CalibratedClassifierCV использует для калибровки out-of-fold прогнозы.
Проверяйте число объектов в интервалах. Даже меньший Brier score сам по себе не доказывает лучшую калибровку: он зависит и от других свойств прогноза.
🔗 Калибровка в scikit-learn
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста | 1 143 |
| 17 | Алгоритм знает, где вы будете 7-го ноября 😎
RecSys-митап в Москве для тех, кто уже строит рекомендательные системы и хочет делать это еще лучше.
В программе — доклады от топовых экспертов Сбера с разбором кейсов, свежих подходов и неочевидных решений.
После официальной части — нетворкинг. Время в узком кругу профессионалов и сообщества Зеленый RecSys.
Участие бесплатное, но количество мест ограничено.
Москва. Суббота. 7 ноября. RecSys!
➡️ регистрируйтесь | 1 411 |
| 18 | 📊 Две строки превратились в четыре после 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 240 |
| 19 | ⚡ Только до 31 октября: покупайте один курс Proglib Academy и получайте второй в подарок!
Что можно освоить?
⏬ ИИ для разработчиков — применение ИИ на разных этапах разработки: от работы с кодом до тестирования, ревью и организации рабочего процесса.
⏬ Разработка ИИ-агентов — создание собственных агентов с памятью, интеграциями и доступом к внешним инструментам.
Научитесь не просто работать с нейросетями, а создавать решения, которые помогают автоматизировать реальные задачи 📍
Можно выбрать эту пару или сочетать любые другие курсы из каталога — под свои интересы и цели.
🎁 Один курс оплачиваете, второй получаете бесплатно. Акция длится до 31 октября.
✨ Прокачать скиллы по акции | 1 233 |
| 20 | 📊 Сколько запросов укладывается в 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 252 |
