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
🔴 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
🧠 Математика для Data Science: с чего начать

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

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

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

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

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

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

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

– Найти выбросы с помощью стандартных методов: 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
📝 Немного инсайтов из третьего модуля курса

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

Но реальный прорыв начинается, когда этих агентов становится несколько.
Когда они начинают взаимодействовать друг с другом.
Когда появляется координация, распределение ролей, память, планирование — всё это и есть мультиагентные системы (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
🎯 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
🤯 Мы больше года строим мультиагентные системы

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

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

Курс тут: https://clc.to/47pgYA
Промокод: datarascals действует до 23:59 29 июня
🎯 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
🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам

Дано:
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 теперь корректна.

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

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

🚀 Модели, релизы и агентные системы
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
2025/07/08 07:49:08
Back to Top
HTML Embed Code: