tgoop.com »
United States »
Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение » Telegram Web
Forwarded from Библиотека задач по Data Science | тесты, код, задания
Data Scientist (Junior) — до 90 000 ₽, удалёнка (Москва)
Machine Learning Engineer (VK Реклама) — от 350 000 ₽, гибрид (Москва)
ML researcher — до 300 000 ₽, удалёнка
Data Scientist — от 300 000 до 400 000 ₽, удалёнка
Библиотека дата-сайентиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
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 и кастомные функции)
— Подробный разбор ошибок с возможностью работать с валидными и невалидными строками отдельно
Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
🧠 Математика для Data Science: с чего начать
Если вы хотите уверенно читать статьи, книги и документацию по Data Science, без знания математического языка не обойтись. Но с чего начать, чтобы не утонуть в формулах?
📌 Мы запускаем серию статей, где по шагам разберем все ключевые темы: от базовых обозначений до сложных алгоритмов.
👀 В первой части — самые основы:
— Что такое ℝ, ℕ, ℤ, ℂ и зачем это знать
— Как устроены векторы и матрицы
— Как читать ∑ и ∏ без паники
— Почему логарифмы — лучшие друзья аналитика
🔗 Читайте первую статью и заложите прочный фундамент для освоения Data Science: https://proglib.io/sh/pSwegRq1o0
Библиотека дата-сайентиста #буст
Если вы хотите уверенно читать статьи, книги и документацию по 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 в боевых задачах
🎓 На курсе мы подходим к этому практично:
Именно на третьем уроке вы впервые собираете не просто «умного бота», а живую систему из агентов, которая работает вместе — как команда.
Причём по-настоящему: врач, 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) — переносят знания большой модели в компактную.
Библиотека дата-сайентиста #буст
«Модель начала галлюцинировать…»
Сначала она отвечала нормально, а потом вдруг выдала что-то абсолютно неуместное.
Знакомо?
Так называемые галлюцинации — это частое поведение генеративных языковых моделей (LLM), при котором они создают правдоподобный, но неточный или выдуманный текст.
❗️ Проблема особенно критична, когда мы используем ИИ-модели в задачах, где от качества ответа зависят решения — будь то медицина, право или бизнес.
Дело не столько в том, как они генерируют текст, а в том, на чём они его основывают.
После обучения модель «застывает» в той информации, на которой её натренировали. Чтобы она узнала что-то новое — её нужно переобучить, а это дорого и долго.
Решение пришло в виде гибридной архитектуры, которая совмещает два мира:
1. Генеративную модель (например, GPT), которая хорошо формулирует текст.
2. Поисковый модуль, который может «подтягивать» актуальную информацию из внешних источников.
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 под одной оболочкой:
📝 Обучайте прозрачные модели (
📝 Объясняйте поведение черных ящиков (
📝 Анализируйте как глобальное поведение, так и отдельные предсказания
Зачем вообще объяснять ML-модель:
✔️ Отладка модели: почему она ошиблась в этом примере
✔️ Feature Engineering: какие признаки реально важны, а что мусор
✔️ Фейрность и этика: не дискриминирует ли модель по полу, возрасту, расе
✔️ Регуляции (законы по контролю ИИ): можем ли мы объяснить, почему модель отказала в кредите
✔️ Человеко-машинное доверие: как врач может поверить в диагноз от модели, если не понимает, почему
Установка:
🔥 Холивар: а вообще, нужно ли объяснять ML-модели?
📝 Мнение №1:
📝 Мнение №2:
📝 Мнение №3:
А как вы считаете? Напишите в комментарии или оставьте реакцию:
🔥 — Да, объяснение критично
❤️ — Нет, главное — точность
👍 — Зависит от задачи
💣 Понравился пост? С ваc буст, а с нас больше топового контента!
Библиотека дата-сайентиста #междусобойчик
И
📦 InterpretML — мощный open-source фреймворк от Microsoft для интерпретации моделей машинного обучения.
Он объединяет лучшие техники explainability под одной оболочкой:
glassbox
)blackbox
)Зачем вообще объяснять ML-модель:
Установка:
pip install interpret
# или
conda install -c conda-forge interpret
🔥 Холивар: а вообще, нужно ли объяснять ML-модели?
Зачем? Главное — метрика. Если ROC-AUC 0.97 — модель хороша.
→ Black-box → Profit
Если ты не можешь объяснить — значит, ты не понимаешь. А значит, и модель не готова к продакшену.
Модели должны быть интерпретируемы там, где это критично — медицина, финансы, суд.
В TikTok-рекомендателе — пофиг. В банковском скоринге — нельзя игнорировать.
А как вы считаете? Напишите в комментарии или оставьте реакцию:
🔥 — Да, объяснение критично
❤️ — Нет, главное — точность
👍 — Зависит от задачи
Библиотека дата-сайентиста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥2
🎯 SemHash — очистка датасетов с помощью семантического поиска
SemHash — это лёгкий и быстрый инструмент для:
— дедупликации (поиск и удаление дубликатов)
— фильтрации выбросов
— выбора репрезентативных примеров
Работает на базе:
🤖 Model2Vec — генерация эмбеддингов
🤖 Vicinity — быстрый поиск по векторной близости (ANN)
Что умеет SemHash:
🤖 Очистка одного датасета (дубликаты, выбросы, ядро)
🤖 Исключение пересечений между train/test
🤖 Работа с простыми текстами и сложными multi-column датасетами
🤖 Удобный просмотр причин дедупликации и выбросов
Быстрый старт:
Также можно:
— Удалять дубликаты между двумя датасетами (train/test leakage)
— Работать с датасетами QA-формата (
— Использовать
Пример: исключаем утечку между train и test
Почему это удобно:
— Быстро: работает на ANN-поиске
— Гибко: один или два датасета, текст или таблицы
— Пояснимо: можно посмотреть, почему запись считается дубликатом
— Масштабируемо: работает с миллионами записей
— Легковесно: минимум зависимостей
📌 Совет: для больших датасетов (>1M) оставляйте
Библиотека дата-сайентиста #буст
SemHash — это лёгкий и быстрый инструмент для:
— дедупликации (поиск и удаление дубликатов)
— фильтрации выбросов
— выбора репрезентативных примеров
Работает на базе:
Что умеет SemHash:
Быстрый старт:
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 июня
Грабли, находки, паттерны, эксперименты — всё это накопилось и в какой-то момент стало жалко держать только у себя.
Никита — рассказывает (и показывает) базу: токенизация, LLM, SFT, PEFT, локальный инференс + RAG и как оценивать его качество.
Диана — как строят мультиагентные системы, какие есть паттерны проектирования и библиотеки.
Макс — про инференс в проде + разберет CoPilot, соберет с вами из кусочков свой копайлот, а затем его сломает через prompt injection. // Макс фанат autogen (а если нет — он вас разубедит в своем классном канале)
Финальным аккордом Дима углубится в MCP и соберет несколько кейсов повзрослее.
Курс тут: https://clc.to/47pgYA
Промокод:
❤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
💡 Важно помнить:
Расстояние — это не просто математика.
Это контекст. Выбирайте метрику под данные, а не только под формулу.
Библиотека дата-сайентиста #буст
Расстояние — ключ к алгоритмам машинного обучения: от кластеризации до рекомендаций. Вот что действительно используют на практике:
Евклидово расстояние
Манхэттенское расстояние
Расстояние Минковского
Косинусное расстояние
Расстояние Жаккара
Расстояние Хэмминга
Расстояние Махаланобиса
Расстояние Чебышёва
Bray-Curtis
Гайд по выбору:
💡 Важно помнить:
Расстояние — это не просто математика.
Это контекст. Выбирайте метрику под данные, а не только под формулу.
Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍10🔥2
🧩 Задача для продвинутых дата-сайентистов: фильтрация по датам
Дано:
Результат:
💡 Задача:
Отфильтровать заказы с датами после 2023-02-01:
Вывод:
Вопросы:
1. Почему результат фильтрации не соответствует ожиданиям?
2. Как правильно работать с колонкой
🎯 Подвох:
— Колонка
— Сравнение строк по дате работает не как с датами, а лексикографически.
— Значение
💡 Решение:
—
— Фильтрация по datetime теперь корректна.
Итог:
— Всегда проверяйте типы данных перед операциями с датами.
— Обрабатывайте некорректные даты сразу при загрузке.
— Это критично для корректного анализа и отчетности.
Библиотека дата-сайентиста #междусобойчик
Дано:
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