Telegram Web
💫 Топ-вакансий для дата-сайентистов за неделю

Data Scientist (Junior) —‍ до 90 000 ₽, удалёнка (Москва)

Machine Learning Engineer (VK Реклама) —‍ от 350 000 ₽, гибрид (Москва)

ML researcher —‍ до 300 000 ₽, удалёнка

Data Scientist —‍ от 300 000 до 400 000 ₽, удалёнка

➡️ Еще больше топовых вакансий — в нашем канале Data jobs

Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🔴 Dataframely — проверка схем и валидация для Polars

Dataframely — это мощная библиотека для валидации данных в Polars DataFrame с поддержкой как runtime-проверок, так и статической типизации.

🔳 Особенность — удобная работа с комплексными схемами, строгими типами и кастомными правилами валидации.

Пример определения схемы пользователя:
import polars as pl
import dataframely as dy

class UserSchema(dy.Schema):
user_id = dy.Int64(primary_key=True, min=1, nullable=False)
age = dy.Int64(nullable=False)
email = dy.String(nullable=False, regex=r"^[^@]+@[^@]+\.[^@]+$")
score = dy.Float64(nullable=False, min=0.0, max=100.0)

@dy.rule()
def age_in_range() -> pl.Expr:
return pl.col("age").is_between(18, 80, closed="both")


— Объявляем типы и ограничения для колонок (в том числе primary key)
— Добавляем регулярные выражения для проверки email
— Пишем кастомные правила через декоратор @dy.rule() (например, проверка возраста)

Проверка данных и автоматическое приведение типов:
validated_data = UserSchema.validate(user_data, cast=True)


cast=True помогает автоматически привести типы колонок к нужным (например, если числа загружены как строки).

🔛 Мягкая валидация с подробным анализом ошибок

Dataframely не просто выбрасывает ошибку, а даёт подробный отчёт о невалидных строках:
good_data, failure_info = UserSchema.filter(user_data, cast=True)

print("Количество валидных строк:", len(good_data))
print("Статистика ошибок:", failure_info.counts())
print("Анализ совмещённых ошибок:", failure_info.cooccurrence_counts())
print("Не прошедшие проверку данные:", failure_info.invalid())


🔛 Почему это круто:
— Типобезопасность и проверка на этапе выполнения
— Интеграция с Polars — современным и быстрым DataFrame-фреймворком
— Гибкие правила валидации (включая regex и кастомные функции)
— Подробный разбор ошибок с возможностью работать с валидными и невалидными строками отдельно

🔛 Ссылка на проект: https://clc.to/turByA

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
🧠 Математика для Data Science: с чего начать

Если вы хотите уверенно читать статьи, книги и документацию по Data Science, без знания математического языка не обойтись. Но с чего начать, чтобы не утонуть в формулах?

📌 Мы запускаем серию статей, где по шагам разберем все ключевые темы: от базовых обозначений до сложных алгоритмов.

👀 В первой части — самые основы:
— Что такое ℝ, ℕ, ℤ, ℂ и зачем это знать
— Как устроены векторы и матрицы
— Как читать ∑ и ∏ без паники
— Почему логарифмы — лучшие друзья аналитика

🔗 Читайте первую статью и заложите прочный фундамент для освоения Data Science: https://proglib.io/sh/pSwegRq1o0

Библиотека дата-сайентиста #буст
7👍4
🧑‍💻 Промт дня: как находить и обрабатывать выбросы в данных

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

🎯 Вот промт, чтобы системно подойти к проблеме:
У меня есть датафрейм с числовыми признаками. Помоги:

– Найти выбросы с помощью стандартных методов: Z-оценка, IQR, Tukey fences, modified Z-score
– Построить визуализации: boxplot, scatter, histogram, isolation forest
– Разделить признаки по плотности выбросов
– Предложить: удалять выбросы, каппировать, логарифмировать, заменять
– Проверить, влияют ли выбросы на корреляции и важность признаков
– Обнаружить мультипризнаковые выбросы (multivariate outliers) с помощью: Mahalanobis distance, One-Class SVM, Isolation Forest

Посоветуй стратегии для ML:
– оставлять как есть
– обработать в препроцессинге
– использовать модели, устойчивые к выбросам (например, robust regression)


Особенно важно в задачах регрессии и при работе с сенсорными/временными данными.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
📝 Немного инсайтов из третьего модуля курса

Сейчас большинство представлений об ИИ ограничиваются одним агентом — моделькой, которая что-то предсказывает, генерирует или классифицирует.

Но реальный прорыв начинается, когда этих агентов становится несколько.
Когда они начинают взаимодействовать друг с другом.
Когда появляется координация, распределение ролей, память, планирование — всё это и есть мультиагентные системы (MAS).

➡️ Пока кто-то думает, что это звучит как научная фантастика, индустрия уже переходит к новым уровням сложности:
— Microsoft делает язык DroidSpeak для общения между LLM
— Open Source-фреймворки вроде LangChain, AutoGen, CrewAI, LangGraph — бурно развиваются
— компании, включая МТС, уже применяют MAS в боевых задачах

🎓 На курсе мы подходим к этому практично:
🔵 разбираем, как устроены MAS
🔵 пишем агентов с нуля
🔵 учимся выстраивать взаимодействие: конкуренцию, кооперацию, планирование

Именно на третьем уроке вы впервые собираете не просто «умного бота», а живую систему из агентов, которая работает вместе — как команда.

Причём по-настоящему: врач, SQL-аналитик, travel-планировщик, Python-генератор, поисковик.

🙂 Если хочется не просто использовать ИИ, а проектировать системы, которые думают, планируют и сотрудничают тогда забирайте курс по ИИ-агентам
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1😁1
😠 Как заставить ИИ отвечать актуально и без «галлюцинаций»

«Модель начала галлюцинировать…»

Сначала она отвечала нормально, а потом вдруг выдала что-то абсолютно неуместное.
Знакомо?

Так называемые галлюцинации — это частое поведение генеративных языковых моделей (LLM), при котором они создают правдоподобный, но неточный или выдуманный текст.

❗️ Проблема особенно критична, когда мы используем ИИ-модели в задачах, где от качества ответа зависят решения — будь то медицина, право или бизнес.

Почему LLM «галлюцинируют»

Дело не столько в том, как они генерируют текст, а в том, на чём они его основывают.

После обучения модель «застывает» в той информации, на которой её натренировали. Чтобы она узнала что-то новое — её нужно переобучить, а это дорого и долго.

Встречайте RAG — Retrieval-Augmented Generation

Решение пришло в виде гибридной архитектуры, которая совмещает два мира:
1. Генеративную модель (например, GPT), которая хорошо формулирует текст.
2. Поисковый модуль, который может «подтягивать» актуальную информацию из внешних источников.

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

Как работает RAG

1. Модуль поиска (retrieval): он ищет релевантные документы по запросу пользователя — в базе знаний, интернете или другом хранилище.

2. Модуль генерации: LLM использует найденные документы как контекст и создаёт ответ. Таким образом, текст создаётся не «из головы» модели, а на основе найденной информации.

Пример в реальной жизни

Если вы используете Gemini от Google и спрашиваете про Бруклинский мост, внизу видны источники, откуда модель взяла информацию. Это — типичная реализация RAG.

Как модель находит нужные документы

Обычно используется метод Dense Passage Retrieval (DPR) — он ищет по смыслу, а не по ключевым словам, в отличие от старых методов вроде BM25 или TF-IDF.

Но у него тоже есть минусы:
— Он может «притягивать» нерелевантные документы.
— Иногда работает хуже, если нужная информация не была в изначальном обучении DPR.

Производительность

Минус RAG — каждый запрос требует два шага:
1. Найти документы.
2. Сгенерировать ответ.

Это может быть дорого по вычислениям, особенно в реальном времени. Чтобы ускорить:
— Применяют упрощённые модели (model pruning).
— Используют дистилляцию знаний (knowledge distillation) — переносят знания большой модели в компактную.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🤩3
This media is not supported in your browser
VIEW IN TELEGRAM
🔮 Пора перестать верить в магические модели

И начать их понимать.

📦 InterpretML — мощный open-source фреймворк от Microsoft для интерпретации моделей машинного обучения.

Он объединяет лучшие техники explainability под одной оболочкой:
📝 Обучайте прозрачные модели (glassbox)
📝 Объясняйте поведение черных ящиков (blackbox)
📝 Анализируйте как глобальное поведение, так и отдельные предсказания

Зачем вообще объяснять ML-модель:
✔️ Отладка модели: почему она ошиблась в этом примере
✔️ Feature Engineering: какие признаки реально важны, а что мусор
✔️ Фейрность и этика: не дискриминирует ли модель по полу, возрасту, расе
✔️ Регуляции (законы по контролю ИИ): можем ли мы объяснить, почему модель отказала в кредите
✔️ Человеко-машинное доверие: как врач может поверить в диагноз от модели, если не понимает, почему

Установка:
pip install interpret
# или
conda install -c conda-forge interpret


🔥 Холивар: а вообще, нужно ли объяснять ML-модели?

📝 Мнение №1:
Зачем? Главное — метрика. Если ROC-AUC 0.97 — модель хороша.
→ Black-box → Profit


📝 Мнение №2:
Если ты не можешь объяснить — значит, ты не понимаешь. А значит, и модель не готова к продакшену.


📝 Мнение №3:
Модели должны быть интерпретируемы там, где это критично — медицина, финансы, суд.
В TikTok-рекомендателе — пофиг. В банковском скоринге — нельзя игнорировать.


А как вы считаете? Напишите в комментарии или оставьте реакцию:
🔥 — Да, объяснение критично
❤️ — Нет, главное — точность
👍 — Зависит от задачи

💣 Понравился пост? С ваc буст, а с нас больше топового контента!

Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2
🎯 SemHash — очистка датасетов с помощью семантического поиска

SemHash — это лёгкий и быстрый инструмент для:
— дедупликации (поиск и удаление дубликатов)
— фильтрации выбросов
— выбора репрезентативных примеров

Работает на базе:
🤖 Model2Vec — генерация эмбеддингов
🤖 Vicinity — быстрый поиск по векторной близости (ANN)

Что умеет SemHash:
🤖 Очистка одного датасета (дубликаты, выбросы, ядро)
🤖 Исключение пересечений между train/test
🤖 Работа с простыми текстами и сложными multi-column датасетами
🤖 Удобный просмотр причин дедупликации и выбросов

Быстрый старт:
pip install semhash


from datasets import load_dataset
from semhash import SemHash

texts = load_dataset("ag_news", split="train")["text"]
semhash = SemHash.from_records(records=texts)

deduplicated = semhash.self_deduplicate().selected
filtered = semhash.self_filter_outliers().selected
representative = semhash.self_find_representative().selected


Также можно:
— Удалять дубликаты между двумя датасетами (train/test leakage)
— Работать с датасетами QA-формата (columns=["question", "context"])
— Использовать DataFrame и кастомные эмбеддинги

Пример: исключаем утечку между train и test
train = load_dataset("ag_news", split="train")["text"]
test = load_dataset("ag_news", split="test")["text"]

semhash = SemHash.from_records(records=train)
clean_test = semhash.deduplicate(records=test, threshold=0.9).selected


Почему это удобно:
— Быстро: работает на ANN-поиске
— Гибко: один или два датасета, текст или таблицы
— Пояснимо: можно посмотреть, почему запись считается дубликатом
— Масштабируемо: работает с миллионами записей
— Легковесно: минимум зависимостей

📌 Совет: для больших датасетов (>1M) оставляйте use_ann=True, это сильно ускоряет работу при высокой точности.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
🤯 Мы больше года строим мультиагентные системы

Грабли, находки, паттерны, эксперименты — всё это накопилось и в какой-то момент стало жалко держать только у себя.

Никита — рассказывает (и показывает) базу: токенизация, LLM, SFT, PEFT, локальный инференс + RAG и как оценивать его качество.
Диана — как строят мультиагентные системы, какие есть паттерны проектирования и библиотеки.
Макс — про инференс в проде + разберет CoPilot, соберет с вами из кусочков свой копайлот, а затем его сломает через prompt injection. // Макс фанат autogen (а если нет — он вас разубедит в своем классном канале)
Финальным аккордом Дима углубится в MCP и соберет несколько кейсов повзрослее.

Курс тут: https://clc.to/47pgYA
Промокод: datarascals действует до 23:59 29 июня
2😁1
🎯 9 метрик расстояния, которые должен знать каждый Data Scientist

Расстояние — ключ к алгоритмам машинного обучения: от кластеризации до рекомендаций. Вот что действительно используют на практике:

Евклидово расстояние
🏮 √(Σ (xi − yi)²)
🏮 KNN, K-Means, SVM
🏮 Геометрическая дистанция
🏮 Обязательно нормируйте данные

Манхэттенское расстояние
🏮 Σ |xi − yi|
🏮 Высокие размерности
🏮 L1-регуляризация, деревья решений

Расстояние Минковского
🏮 (Σ |xi − yi|ᵖ)¹/ᵖ
🏮 Универсальное: p=1 → Манхэттен, p=2 → Евклид
🏮 Гибкость для вариаций KNN/K-Means

Косинусное расстояние
🏮 A·B / (| |A | | × | | B | |)
🏮 NLP, сравнение текстов
🏮 Оценивает угол между векторами
🏮 Отлично для разреженных данных

Расстояние Жаккара
🏮 1 − (|A ∩ B| / |A ∪ B|)
🏮 Бинарные/категориальные данные
🏮 Рекомендательные системы

Расстояние Хэмминга
🏮 Кол-во несовпадающих позиций
🏮 NLP, обнаружение ошибок, ДНК
🏮 Только для строк одинаковой длины

Расстояние Махаланобиса
🏮 (x − μ)ᵀ S⁻¹ (x − μ)
🏮 Учитывает корреляции
🏮 Поиск аномалий, классификация

Расстояние Чебышёва
🏮 max(|xi − yi|)
🏮 Захватывает наибольшую разницу
🏮 Сеточные модели, алерты

Bray-Curtis
🏮 Σ |xi − yi| / Σ (xi + yi)
🏮 Экологические и количественные данные
🏮 Не является метрической функцией!

Гайд по выбору:
📟 Нормализованные числовые признаки → Евклид/Манхэттен
📟 Текст, категории → Косинус/Жаккар
📟 Гауссовские признаки с корреляцией → Махаланобис
📟 Побитовые сравнения → Хэмминг
📟 Состав экосистем → Bray-Curtis

💡 Важно помнить:
Расстояние — это не просто математика.
Это контекст. Выбирайте метрику под данные, а не только под формулу.

Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍10🔥2
🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам

Дано:
import pandas as pd

data = {
'order_id': [1, 2, 3, 4, 5],
'order_date': ['2023-01-01', '2023-02-15', 'not available', '2023-03-10', '2023-04-05'],
'amount': [100, 150, 200, 130, 170]
}

df = pd.DataFrame(data)
print(df)


Результат:
   order_id    order_date  amount
0 1 2023-01-01 100
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


💡 Задача:

Отфильтровать заказы с датами после 2023-02-01:
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


Вывод:
   order_id     order_date  amount
1 2 2023-02-15 150
2 3 not available 200
3 4 2023-03-10 130
4 5 2023-04-05 170


Вопросы:
1. Почему результат фильтрации не соответствует ожиданиям?
2. Как правильно работать с колонкой order_date, чтобы фильтрация по датам работала?

🎯 Подвох:
— Колонка order_date — это строки (object), а не тип datetime.
— Сравнение строк по дате работает не как с датами, а лексикографически.
— Значение 'not available' мешает конвертации.

💡 Решение:
df['order_date'] = pd.to_datetime(df['order_date'], errors='coerce')
filtered = df[df['order_date'] > '2023-02-01']
print(filtered)


pd.to_datetime с errors='coerce' заменит неправильные даты на NaT.
— Фильтрация по datetime теперь корректна.

Итог:
— Всегда проверяйте типы данных перед операциями с датами.
— Обрабатывайте некорректные даты сразу при загрузке.
— Это критично для корректного анализа и отчетности.

Библиотека дата-сайентиста #междусобойчик
4🔥4👍2
🆕 Свежие новости для дата‑сайентистов

🚀 Модели, релизы и агентные системы
Gemini 2.5 раскрыла секреты мышления — модель от DeepMind играла в Pokémon 813 часов, делая десятки тысяч инференс-циклов
Mistral Small 3.2 (24B) — улучшен 5-shot MMLU, tool calling и инструкции
Gemma 3n — новый open‑релиз от Google, уже 160M+ загрузок
Google AI‑Colab теперь доступен всем
Gemini CLI — агент прямо в терминале
ElevenLabs 11ai — голосовой ассистент с подключением инструментов

🧠 Исследования и инсайты
Reinforcement Learning Explained — без математики и жаргона
Evaluating Long‑Context Q&A — как оценивать модели на длинных контекстах
Tensor Cores: от Volta до Blackwell — эволюция матричных блоков NVIDIA
Sam Altman: путь OpenAI и взгляд в будущее

📚 Обучение и практика
Новый курс от Andrew Ng — Building with Llama 4
Vision Transformer — как трансформеры «увидели» мир
Инференс с множеством LoRA-адаптеров
Компьютерное зрение в сельском хозяйстве
Компьютерное зрение для начинающих
HandReader и Znaki — архитектура и датасет для русского дактиля
Главное по ML/DL: SVD, PCA, бустинг и многое другой

Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2❤‍🔥1
2025/07/08 17:55:24
Back to Top
HTML Embed Code: