Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
18.8K subscribers
2.24K photos
111 videos
64 files
4.64K links
Все самое полезное для дата сайентиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/4hNluQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
А вы говорите «спасибо» ChatGPT?

❤️ — Конечно, вдруг пощадит при восстании машин.
— Нет, пусть учится писать короче, понятнее, как человек.

Библиотека дата-сайентиста #развлекалово
349😁4💯1
🎉 Поздравляем с 8 марта

Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐

Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин:

🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке.
🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг».
🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java.
🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике.
🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну.

А это только малая часть. В статье собраны ещё больше вдохновляющих историй.

🔗 Подробнее в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2🔥1🥰1🤩1
🔎 Wordsearch: узнаем, кто самый внимательный

Готовы проверить свои знания в Data Science? В этой головоломке спрятаны 8 терминов из мира DS.

Правила просты:

— Найдите 8 слов в сетке (слова идут по горизонтали)
— Напишите в комментариях, какие слова вы нашли
— Объясните один из терминов так, чтобы даже джун понял

🏆 Кто первым найдет все 8 слов и объяснит хотя бы один термин — получит почетный статус DS Guru на неделю!

Погнали 👇

Библиотека дата-сайентиста #междусобойчик
2👍2
📰 Главные новости недели в AI & Data Science

🔹 Google Colab представил Data Science агента — теперь он умеет создавать целые ноутбуки, а не просто фрагменты кода.

🔹 OpenAI инвестирует $50M в университеты — программа NextGenAI направлена на развитие ИИ-исследований.

🔹 Премия Тьюринга за RL — главная награда в CS присуждена за вклад в обучение с подкреплением.

🔹 Новая статья «Superintelligence Strategy» — топовые ML-исследователи предлагают стратегию безопасности ИИ.

🔹 Hazy Research ускорили Multiheaded Latent Attention на 30% — быстрее, чем DeepSeek!

🔹 Новая книга «Foundations of Large Language Models» — глубокий разбор основ LLM, от предобучения до выравнивания.

🔹 Mistral AI представила OCR API точное извлечение данных из сложных документов.

🔹 Alibaba Qwen представила QwQ-32B — конкурента DeepSeek.

Как вам новости? Что впечатлило больше всего?

Библиотека дата-сайентиста #свежак
👍41
📸 Как улучшить качество YOLO-детекции?

Наш подписчик задал этот вопрос, и мы нашли подробный гайд на тему. Вот основные моменты:

🎯 Данные:
• Большой размер тренировочного датасета → помогает модели адаптироваться к разным условиям.
• Точность разметки → корректная аннотация повышает чувствительность модели к деталям.
• Выбор фона → релевантные фоны уменьшают ложные срабатывания.

🎯 Размер изображений и батч:
• Крупные изображения → могут повысить точность, но требуют больше вычислений.
• Маленький батч → может замедлить обучение, но поможет избежать проблем с памятью.

🎯 Эпохи и гиперпараметры:
Слишком мало эпох – недообучение, слишком много – переобучение.

🎯 Что еще можно сделать:
• Гистограммное выравнивание → улучшает изображения.
• Извлечение признаков → помогает модели лучше понимать объекты.
• Комбинация алгоритмов → можно объединить YOLO с другими моделями.

Хотите углубиться в тему? Вот подробная статья: https://clc.to/jDz1DQ
🤔 А что бы вы добавили к этому списку?

Библиотека дата-сайентиста #междусобойчик
💯31👍1😁1
🚀 Релиз FireDucks 1.2.4

Новая версия FireDucks была релизнута 7 марта:
• Удалены fallback-режимы для DataFrameGroupBy.rank() (методы «first» и «dense»).
• Оптимизация: pushdown для groupby с выбором столбцов.
• Поддержка агрегации Series с использованием словаря.

Что такое FireDucks?
FireDucks ускоряет pandas без изменений в коде. Преимущество — мультипоточность для работы на многоядерных процессорах и JIT-компиляция, которая оптимизирует код на лету.

Особенности:
• Мультипоточность — использует многоядерные процессоры для ускорения выполнения.
• JIT-компиляция — встроенный компилятор ускоряет код в реальном времени.
• Полная совместимость с pandas API — никаких изменений в вашем коде, только замена импорта.
• Автоматическое исполнение — программное решение с функциональностью import-hook, которое само заменяет импорт pandas на FireDucks.

А вы уже использовали FireDucks?
❤️ — да
🤔 — нет

Ссылка на FireDucks библиотеку: https://clc.to/xAWVzQ

Библиотека дата-сайентиста #свежак
🤔63👍1
🐼 How to: объединять таблицы в Pandas

Разберём основные виды соединений DataFrame:

Full Outer Join (Полное внешнее соединение):
Возвращает все записи из обеих таблиц. Если нет совпадения, подставляется NaN.

import pandas as pd

df1 = pd.DataFrame({
'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie']
})

df2 = pd.DataFrame({
'ID': [3, 4, 5],
'Age': [23, 34, 45]
})

full_outer = pd.merge(df1, df2, on='ID', how='outer')
print(full_outer)


Inner Join (Внутреннее соединение):
Возвращает только совпадающие записи из обеих таблиц.

inner = pd.merge(df1, df2, on='ID', how='inner')
print(inner)


Left Outer Join (Левое соединение):
Берёт все записи из левой таблицы и только совпадающие из правой. Остальные заполняются NaN.

left_outer = pd.merge(df1, df2, on='ID', how='left')
print(left_outer)


Right Outer Join (Правое соединение):
Аналогично левому соединению, но теперь берём все записи из правой таблицы.

right_outer = pd.merge(df1, df2, on='ID', how='right')
print(right_outer)


Библиотека дата-сайентиста #буст
👍91🔥1
📊💼 Ситуация на рынке труда в IT в 2025 году: результаты опроса айтишников

Помните мы проводили опрос про рабочие моменты? Пришло время делиться результатами!

В нашем исследовании приняли участие более 1000 IT-специалистов различных направлений. Работа или личная жизнь? Удалёнка или офис? Заменил ли всех ИИ?

➡️ Ответы в подробном отчёте

А какие изменения на IT-рынке замечаете вы? Делитесь в комментариях! 👇

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
📝 Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году

Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.

В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.

📄 Прочитайте статью и укрепите свои знания https://proglib.io/sh/1uYAygzIxr

Библиотека питониста
😁2👍1
🔍 Команда дня: query() в Pandas

Метод df.query() принимает строку с условием для фильтрации данных.

🔹 Важные моменты:
• Строковые значения должны быть заключены в кавычки внутри условия.
• Можно комбинировать несколько условий с & (И) или | (ИЛИ).

🔹 Пример использования:
import pandas as pd

# Создаём DataFrame
df = pd.DataFrame({
'Product': ['Apple', 'Banana', 'Cherry'],
'Price': [0.4, 0.8, 0.3],
'Country': ['United Kingdom', 'USA', 'United Kingdom']
})

# Фильтруем товары дешевле 0.5 и из UK
filtered_df = df.query('Price < 0.5 & Country == "United Kingdom"')

print(filtered_df)


🔹 Вывод:
  Product  Price         Country
0 Apple 0.4 United Kingdom
2 Cherry 0.3 United Kingdom


🔹 Преимущества query():
• Более читаемый и краткий код по сравнению с df[(df['Price'] < 0.5) & (df['Country'] == 'United Kingdom')]
• Поддержка переменных через @var_name
• Удобно для сложных фильтраций

Библиотека дата-сайентиста #буст
👍131
Forwarded from .ml
Ранее мы обсуждали с вами RoPE, а теперь поговорим о его модификациях. Собрали много интересного, поэтому будет целых три поста по этой теме. Enjoy!

Для начала напомним, что Positional Encoding (кодирование позиций слов/токенов) нужен, чтобы передать модели или трансформеру информацию о позициях слов — относительную или же абсолютную.


Как развивалось позиционное кодирование:

📆 2017 год
С появлением ванильного трансформера позиции токенов кодировались тригонометрической функцией, значение которой зависело от позиции и просто прибавлялось к эмбеддингу соответсутвующего слова.

Плюсы — мы умеем кодировать любую позицию, в том числе превосходящую максимальную длину, на которой тренировались.

Минусы — не очень работает на длинных последовательностях, да и вообще не очень хорошо работает.

📆 2018 год
Потом появился гугловский BERT, а вместе с ним новый подход позиционного кодирования: авторы предложиди выкинуть тригонометрию и вместо этого добавить в модель ещё один обучаемый слой nn.Embedding — такой же, как для получения эмбеддингов слов. Он должен кодировать — то есть, превращать в вектор — позицию токена.

Итоговый вектор токена, который будет передан следующим слоям модели — это сумма векторов токена и его позиции. Работает лучше, чем тригонометрия, но при этом никак не экстраполируется: так как векторы выучиваемые, то для позиций, превосходящих максимальную тренировочную длину, мы кодировать не умеем — она вне ключей нашего словаря эмбеддингов, так же, как мы не можем закодировать и незнакомый модели токен.

В это же время впервые появилась идея о том, что нам важны не столько абсолютные позиции слов, сколько относительные. Авторы статьи решили кодировать не абсолютную позицию, а только относительную (Relative Position Encoding, или RPE), то есть близость каждой пары токенов. Здесь же появилась идея, что позицонное кодирование стоит добавлять не в момент создания эмбеддингов слов, а на этапе Attention, добавляя знание о позициии в queries и keys.
Чек-лист: как структурировать Data Science проект

📁 data-science-project/
├── 📁 data/
│ ├── 📁 raw/
│ ├── 📁 processed/
│ └── 📁 external/
├── 📁 notebooks/
│ ├── 📄explore_data.ipynb
│ ├── 📄
│ ├── 📄 traine.ipynb
│ └── 📄 evaluate.ipynb
├── 📁 src/
│ ├── 📁 data/
│ │ ├── 📄 load_data.py
│ │ ├── 📄 process_data.py
│ │ └── 📄 split_data.py
│ ├── 📁 features/
│ │ └── 📄select_feature.py
│ ├── 📁 models/
│ │ ├── 📄 train.py
│ │ ├── 📄 predict.py
│ │ └── 📄 evaluate.py
│ ├── 📁 visualizations/
│ │ └── 📄 plot_results.py
├── 📁 tests/
│ ├── 📄 test_models.py
│ └── 📄 test_visualise.py
├── 📁 reports/
│ ├── 📁 figures/
│ └── 📄 report.md
├── 📁 docs/
│ └── 📄 README.md
├── 📄 requirements.txt
├── 📄 .gitignore
└── 📄 LICENSE

Пояснение основных директорий:

1️⃣ data/: Хранит данные на разных этапах (необработанные, обработанные, внешние).

2️⃣ notebooks/: Ноутбуки для пошагового эксперимента (например, исследование данных, создание признаков).

3️⃣ src/: Python скрипты для модульных операций:

data/: Загрузка, очистка и разделение данных.

features/: Создание и отбор признаков.

models/: Обучение модели, предсказания и оценка.

visualizations/: Генерация графиков и визуальных выводов.

4️⃣ tests/: Юнит-тесты для проверки работы скриптов и пайплайнов.

5️⃣ reports/: Финальные отчёты, графики и визуализации.

6️⃣ docs/: Документация проекта и README.

Библиотека дата-сайентиста #буст
👍17🔥21
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Снижение размерности — это потеря информации?

📢 Один из подписчиков поделился своей историей.

Ему дали задачу: разобраться в данных, выделить важные признаки и выявить зависимости. В поиске решений он предложил использовать t-SNE, PCA или UMAP для первичного анализа.

Но сразу же услышал в ответ:

Снижение размерности? Это же потеря информации!

Он хотел объяснить свою точку зрения и сказать: «Я понимаю этот аргумент, но...» — но разговор быстро свернул в другую сторону.


💭 А как бы вы ответили в такой ситуации? Как лучше объяснить пользу этих методов?

P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.

Библиотека дата-сайентиста #междусобойчик
👍32
👍 Что посмотреть: мониторинг и аналитика ML-моделей

Хотите понимать, как отслеживать поведение машинного обучения в проде, выявлять проблемы и поддерживать высокую точность моделей?

В этом плейлисте разберём:
🔹 Введение — зачем нужен мониторинг
🔹 Дрейф данных и моделей
🔹 Как обнаружить и предотвратить дрейф
🔹 Дизайн системы мониторинга
🔹 Практика — пошаговая реализация на реальных примерах

Библиотека дата-сайентиста #буст
👍32
Нужна ли математика программисту

Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё.

➡️ Что внутри:

✓ Почему все считают, что программисты — математики

✓ В каких сферах разработки можно вообще не знать математику

✓ Где хватит готовых библиотек, а где придётся разбираться в формулах

✓ Какие области программирования требуют мощного математического бэкграунда

✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science

✓ Топ книг, которые помогут понять и даже полюбить математику

🔵 Чтобы знать математику, забирайте наш курс → «Математика для Data Science»

📎 Читать статью

Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥1
💡 Холивар: AI-инструменты в работе — must-have или бесполезная игрушка?

Сегодня появляется всё больше решений, упрощающих жизнь дата-сайентистам. Например, PandasAI — инструмент, который позволяет задавать вопросы к данным на естественном языке. Это полезно и для новичков, и для опытных специалистов, которым нужно сэкономить время.

🛠 Пример использования PandasAI:
import pandasai as pai

# Sample DataFrame
df = pai.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})

# By default, unless you choose a different LLM, it will use BambooLLM.
# You can get your free API key signing up at https://app.pandabi.ai (you can also configure it in your .env file)
pai.api_key.set("your-pai-api-key")

df.chat('Which are the top 5 countries by sales?')


Этот код позволяет легко получать инсайты из данных без сложного анализа.

А как у вас с AI-помощниками в работе? Делитесь в комментах, какие инструменты вам реально помогают! 👇

🔥 — да, активно использую
👍 — пробовал(а), но не зашло
🤔 — пока не использую, но интересно
🌚 — нет, считаю их бесполезными

Библиотека дата-сайентиста #междусобойчик
🔥9🤔7👍4🌚41
🤖 Новости DS и AI

🔹 Manus — китайский AI-агент, комбинирующий модели с планированием действий.
🔹 OpenAI изучает «взлом» своих моделей, которые иногда «читерят».
🔹 Google Gemma 3 — 128k токенов и мультимодальность.
🔹 OpenAI запустил Responses API — веб-поиск, работа с файлами, автоматизация.
🔹 Gemini 2.0 Flash Exp — новый уровень AI-редактирования изображений.
🔹 Google Colab поддерживает Julia.
🔹 Первая научная ИИ статья прошла рецензирование на ICLR.
🔹 Импорт окружения Kaggle в Colab — упрощает работу с ML.

Что посмотреть и почитать:
🔹 The Future of U.S. AI Leadership — AI будет писать 90% кода.
🔹 Создание простого ML-стека.
🔹 Как внедрить вредоносный код в AI-модель через pickle.
🔹 Градиентный бустинг для чайников.
🔹 Распределенное обучение в MLOps.

Инструменты:
🔹 Pandas AutoProfiler — для профилирования DataFrame.
🔹 Validoopsie — для валидации данных в Python.
🔹 MLJAR Studio — приложение на базе JupyterLab для начинающих.

Библиотека дата-сайентиста #свежак
👍21