EasyData
950 subscribers
152 photos
10 videos
22 files
80 links
Добро пожаловать!
Меня зовут Мария Жарова, и это мой блог про науку о данных

Лайфхаки из будней MLщика, полезности по Data Science и ответы на вопросы, которые волнуют новичков и не только🌝

Автор @NaNCat
加入频道
Отличных выходных, дорогие друзья!
#мем@data_easy
😁1710
Методичка_кафка.pdf
8.7 MB
Привет, друзья!
Не так давно в LinkedIn завирусилась очень полезная методичка по Apache Kafka - не смогла пройти мимо😁

Пару слов что такое Kafka и зачем она нужна...

Это распределённая платформа потоковой передачи сообщений, которая позволяет:
1️⃣ Собирать данные из разных источников (логов, БД, API...) в реальном времени.
2️⃣ Сохранять события в виде сообщений, которые можно читать многократно, разными потребителями и спустя время (в отличие от RabbitMQ).
3️⃣ Подключать обработчики (консьюмеры), которые анализируют или трансформируют поток данных - например, для аналитики, мониторинга или ETL.
4️⃣Организовывать обмен сообщениями между микросервисами так, чтобы они не зависели напрямую друг от друга - каждый подписывается на нужный поток и обрабатывает события независимо.

Ещё ссылки...
✴️ Официальная документация Kafka
✴️ Интерактивный учебник от Confluent
✴️ Документация confluent-kafka (обёртка для работы на Python)
✴️ И во вложении та самая методичка:)

Солнечной недели!🔆

#mlops@data_easy
16🔥8
Факторный анализ.pdf
29.4 MB
Всем привет!
Сегодняшний пост для любителей японской культуры и тех, кто хочет нескучным способом освежить в памяти важные для ML основы математики 🤩

Держите подборку "математических" манг от Сина Такахаси, который решил, что объяснять сложные вещи через сюжеты и картинки - это не шутка, а мощный образовательный приём. Во вложениях следующие его работы:
🤩 Линейная алгебра
🤩 Факторный анализ
🤩 Регрессионный анализ
🤩 Статистика

Это далеко не весь список, есть труды по другим разделам высшей математики, физике, базам данных (к сожалению, не всё ещё переведено на русский).

Приятного просмотра! Есть кто уже читал - как вам?🌚

#математика@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3310🤣5🙏3😁1
Всех с серединой недели!🐸

#мем@data_easy
😁16🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, друзья!
Если вам нравится автоматическая аналитика по типу YData Profiling, то, возможно, придётся по душе и Evidently!
Эта библиотека активно развивается и содержит множество удобных обёрток для мониторинга качества данных в проде.

💡Вот что она умеет:
- Анализировать качество данных: пропуски, типы данных, распределения... похоже на возможности YData.
- Отслеживать дрифт признаков и таргета: сравнивает две выборки по ключевым статистическим характеристикам (например, train и prod датасеты).
- Мониторить метрики моделей во времени: можно встроить в пайплайны (Airflow, Prefect, CI/CD), чтобы отслеживать изменения в качестве.
- Оценивать входы и выходы LLM: есть специальные отчёты для анализа prompt-response (длина, токсичность, повторяемость и т.п.)
- Работать локально или в облаке: можно использовать просто в ноутбуке или развернуть Evidently UI для команды.
- И самое главное:) Она создаёт интерактивные HTML-отчёты за пару строк кода.

💡Полезные материалы:
- официальная документация (сразу ссылка на quickstart)
- youtube-канал с видео-туториалами
- репозиторий библиотеки на github


Пусть дрифт остаётся на треке, а не в проде 🚙

#аналитика@data_easy
#mlops@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5❤‍🔥3
18😁11👍3🤣1
Привет, друзья!
В DS-задачах часто встречаются категориальные признаки с очень высокой кардинальностью (в которых много уникальных значений): ID, URL, слова в тексте, теги и прочее. Прямое one-hot кодирование таких признаков, скорее всего, приведёт к огромным разреженным матрицам и быстро "взорвёт" размерность🤯

Но прежде чем объединять редкие категории в "другое" или просто отбрасывать их, стоит рассмотреть hashing trick - простой и масштабируемый способ кодирования категориальных признаков.

В чём идея алгоритма?

➡️ берём строковое значение (например, user_id),
➡️ пропускаем его через хэш-функцию,
➡️ берём остаток по модулю D - заранее заданного размера выходного вектора,
➡️ получаем индекс, в который кладём 1 (или другое значение, если это count/frequency).

🧐Кажется, что похоже на one-hot - но вот в чём ключевое отличие: мы не храним словарь всех уникальных значений и сами выбираем размерность пространства D.

🤷‍♂️ Из минусов: при таком подходе возможны коллизии - два разных значения могут попасть в одну и ту же ячейку. Это происходит случайно, и по смыслу такие значения нельзя считать похожими. Но коллизии - это осознанная плата за компактность🤷‍♀️

👍 Из плюсов: метод работает стабильно и хорошо масштабируется. Даже если вдруг появляется новая категория, она автоматически попадает в какую-либо ячейку без пересоздания маппинга. Это делает hashing trick особенно удобным в стриминге, real-time inference и онлайн-обучении. Кроме того, можно кодировать "перекрестные" (парные, тройные и т.п.) категориальные фичи.

💻 В sklearn уже есть готовая реализация этого приёма:


from sklearn.feature_extraction import FeatureHasher

# хэшер на 10 выходных фичей
hasher = FeatureHasher(n_features=10, input_type='string')

# пример категориальных данных
data = [
['user_1', 'item_42'],
['user_2', 'item_17'],
]

# собственно преобразование
X = hasher.transform(data)


Hashing trick - не волшебная кнопка, но отличный инструмент в арсенале. Особенно там, где важны скорость, масштабируемость и минимальное потребление памяти.

Успехов в оптимизации размерности!🌹

#classic_ml@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥14👍42