Telegram Web
🔎 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.

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

✓ Что делать, если математика — это боль, но хочется освоить 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
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Это база: аctive learning

Разметка данных — процесс сложный, дорогой и отнимающий много времени. Active Learning (Активное обучение) — способ эффективно обучать модели, даже если данных с разметкой нет.

🔍 Как это работает:
1. Начинаем с небольшой разметки
Размечаем вручную лишь малую часть данных (~1%).

2. Обучаем начальную модель
На основе размеченных данных строим базовую модель (она будет неточной, но это нормально).

3. Предсказываем метки для оставшихся данных
Но мы не знаем, насколько предсказания модели точны.

4. Оцениваем уверенность модели
• Если разница между 1-м и 2-м по вероятности классом большая, значит, модель уверена в предсказании.
• Если разница маленькая, значит, модель сомневается.

5. Размечаем только неуверенные предсказания
• Вместо того, чтобы вручную размечать весь набор данных, мы фокусируемся только на сложных примерах.
• Полученные новые метки добавляем в тренировочный набор.

6. Повторяем процесс
• Обучаем модель заново.
• Генерируем предсказания и уровни уверенности.
• Размечаем только сложные случаи.
• Повторяем, пока модель не станет достаточно точной.

🤝 Cooperative Learning:
Можно пойти дальше:
✔️ Низко-уверенные примеры размечаем вручную.
✔️ Высоко-уверенные примеры добавляем в тренировочный набор с их предсказанными метками.

🔹 Что это даёт:
• Сокращает количество размечаемых данных.
• Ускоряет обучение.
• Улучшает качество модели с минимальными затратами.

Библиотека дата-сайентиста #буст
👍112
2025/07/14 21:42:13
Back to Top
HTML Embed Code: