Dmatryusофрения
41 subscribers
291 photos
10 videos
15 files
148 links
Пишу о книгах, лидерстве, технологиях, opensource, своих проектах и наверное чем-то ещё. Ну и репосты IT приколямб.
Download Telegram
#fun #classic #ml

Если вы вдруг забыли, что такое дерево решений. То вот вам база)

Дерево решений - это модель, построенная путем рекурсивного разбиения пространства признаков на несколько непересекающихся областей (узлов дерева) в соответствии со значениями некоторых разделяющих атрибутов.
Атрибуты обычно представляют собой двоичные переменные, которые идентифицируют, что какой-либо признак превышает некоторый порог. Каждой конечной области (листу дерева) присваивается значение, которое является оценкой реакции в область для задачи регрессии или прогнозируемая метка класса в случае задачи классификации.
🤡2
#classic #ml

Наверное все знают, что не только CatBoost может обрабатывать категориальные фичи автоматически. LGBM тоже может, но они это делают по-разному.

LGBM на каждом шаге градиента делает TargetEncoding. Процесс не самый быстрый и требует приличное количество памяти, так как каждый энкодинг надо мапить. Процесс интересный, однако сами разрабы LGBM рекомендуют энкодить категории до подачи в модель.
👍2
#classic #ml
Продолжаем тему кодирования категорий. В прошлый раз затронули LGBM. Сегодня подробнее поговорим про CatBoost.

Итак в CatBoost используется для энкодинга так же Target Statistic (TS).
Есть разные стратегии работы с TS.

Жадная TS (Greedy TS):
* Использует среднее значение целевой переменной для каждой категории.
* Включает сглаживание с помощью параметра a и априорного значения p
* Подвержена условному сдвигу, так как использует целевое значение самого примера
😜 Это то, что мы используем чаще всего, когда сами энкодим таргетом

TS с исключением (Holdout TS):
* Разделяет данные на две части
* Вычисляет TS на одной части
* Обучает модель на другой
* Устраняет условный сдвиг, но использует меньше данных
😒 Жертвовать данными ради энкодинга ну такое себе

TS с исключением одного (Leave-one-out TS):
* Вычисляет TS на основе всех примеров, кроме текущего
* Несмотря на кажущуюся эффективность, всё равно подвержен сдвигу

Упорядоченная TS (Ordered TS):
* Использует случайную перестановку примеров
* Вычисляет TS только на основе предыдущих примеров в перестановке
* Эффективно использует все данные для обучения
* Устраняет условный сдвиг
🐈 Является базовой стратегией в CatBoost

Эксперименты показывают, что упорядоченная TS значительно превосходит другие подходы. Например, на датасете Amazon улучшение составляет 40% по logloss по сравнению с жадной TS и 8.3% по сравнению с holdout TS.

Важное преимущество упорядоченной TS - она позволяет эффективно использовать все обучающие данные как для вычисления целевых статистик, так и для обучения модели.

Процесс вычисления:
1. Для k-го примера берется подмножество Dk - все предыдущие примеры в перестановке
2. Вычисляется среднее значение целевой переменной по всем примерам из Dk с таким же категориальным значением
3. При этом само значение yk не участвует в вычислении

Для уменьшения влияния случайности:
* Используется несколько независимых перестановок
* Значения TS усредняются по всем перестановкам
* Это снижает дисперсию оценок, особенно для первых примеров в перестановке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#classic #ml

Не так давно вышла версия xgboost 2.0.

В основном там улучшение производительности, в частности лучшее управление кэшем процессора и оптимизация федеративного обучения в том числе в рамках PySpark.
🤩3
#fun

Первые крашенные миньки.
🔥4
Читаю книгу про визуализацию данных... Большую часть из того, что уже прочитал, читалась с телефона. Сейчас наконец добрался до бумажной... И насколько же она в таком формате лучше идет. Графики красивые и на своих местах, заголовки цветастые. Белые страницы с телефона вообще неприятно читать, а не белые искажают цвета.

В общем, мой вывод такой: если в книге картинки и цвет - это важно, то бумага определённо лучше телефона.

Интересно еще попробовать электронную книгу с цветным e-ink, но не насколько, чтобы тратить на это 20+к, да и бумагу я все же люблю больше.
Забавно, что каждый год исследования Data Vizualization Society показывает, что самым популярным инструментом визуализации является Excel 🤪
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
#classic #ml

Сегодня буду рассказывать о том, что такое предвзятостьo градиентов, и как эту проблему решает CatBoost.

Предвзятость градиентов — это серьезная проблема в градиентном бустинге, которая приводит к переобучению модели. Суть проблемы в том, что градиенты, используемые на каждом шаге обучения, оцениваются на тех же данных, на которых строится текущая модель. Это создает смещение в распределении градиентов и ухудшает качество модели.

Классические подходы (XGBoost, LightGBM) используют двухэтапный процесс:
1. Выбор структуры дерева
2. Расчет значений в листьях

При этом значения в листьях рассчитываются как приближения градиентов или шагов Ньютона.

CatBoost предлагает принципиально иной метод борьбы с предвзятостью:

1. Отдельные модели для каждого примера:
- Для каждого обучающего примера создается отдельная модель
- Эти модели никогда не обновляются с помощью градиента этого примера
- Позволяет получить несмещенные оценки градиентов

2. Использование случайных перестановок:
- Данные случайным образом переставляются несколько раз
- Для каждой перестановки строятся отдельные модели
- Это повышает устойчивость алгоритма

3. Оптимизация вычислений:
- Все модели используют одинаковую структуру деревьев
- Используется эффективный алгоритм подсчета приближений
- Сокращается количество необходимых вычислений


Алгоритм CatBoost:
1. Создает несколько случайных перестановок данных
2. Для каждой перестановки:
- Строит отдельные модели без использования текущего примера
- Вычисляет градиенты на основе этих моделей
- Использует их для оценки результирующего дерева


Преимущества подхода CatBoost

1. Снижение переобучения:
- Несмещенные оценки градиентов
- Использование нескольких перестановок
- Более стабильная работа на разных данных

2. Эффективность:
- Оптимизированное хранение данных
- Параллельные вычисления
- Разумный баланс между качеством и скоростью

3. Универсальность:
- Работает с разными типами данных
- Адаптируется под различные задачи
- Предотвращает переобучение на сложных наборах данных

P.S. Схему рисовал сам для вас 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤝1
#hypex

Новый релиз!
https://github.com/sb-ai-lab/HypEx/releases/tag/v1.0.2

Справедливости ради скорость АА теста совсем не только я ускорял, но и Ваня с Настей. Я больше ревьюил, замерял, рефакторил, ну и код заливал.

Но гайз, если вы пользуетесь нашей либой...

😜 Там ускорение в 2000 раз на 2 млн. записей
Долгие процессы стали гораздо более удобными, благодаря появлению прогресс баров.
👩‍💻Да и смотреть на результаты теперь приятнее благодаря форматированию в резюме
🔫Не говоря уже про исправленные ошибки

В общем, все бегом обновляться 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
#ml

Поговорим сегодня про имбалансное обучение.

Думаю, что все знакомы с проблемой: отношение 1 к 0 1/70, мажоритарный класс ломает эвристики, ломает метрики... В общем, к этому всему нужно особое внимание и особые подходы.

В общих чертах, что можно делать:
1. Оверсемплить
2. Андерсемплить
3. Комбинировать овер и андерсэмплинг
4. Использовать специальные модели со встроенным в алгоритм сэмплированием
5. Использовать метрики устойчивые к дисбалансу и дополнительные инструменты анализа
6. Настраивать лосс-функции моделей, чтобы она лучше училась на миноритарном классе.

В дальнейшем планирую больше раскрывать тему и рассказывать о практике применения различных приемов.
🤔2
Полезное
🤝2
🧑‍💻 Промт дня: как находить и обрабатывать выбросы в данных

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

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

– Найти выбросы с помощью стандартных методов: 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
👍2
Рили
💯3