#life@dm_projects_log
Наблюдение... Чтение перед сном ещё хуже, чем сериалы и игры. Особенно для тех, кто читает так же медленно, как я. Правда моя скорость усугубляется тем фактом, что я ещё и конспект пишу. Вообще говоря, на конспект уходит бОльшая часть времени. В общем, лёг в 3:45. Надо было дочитать раздел с типизацией.
Наблюдение... Чтение перед сном ещё хуже, чем сериалы и игры. Особенно для тех, кто читает так же медленно, как я. Правда моя скорость усугубляется тем фактом, что я ещё и конспект пишу. Вообще говоря, на конспект уходит бОльшая часть времени. В общем, лёг в 3:45. Надо было дочитать раздел с типизацией.
👍2😱1
Привет всем! Пропал на месяц. Связано со сменой работы, адаптацией к этому всему. На самом деле все еще в процессе адаптации, но кажется стало появляться внимание на что-то еще. Планирую цикл небольших заметок. Пока без подробностей, чтобы не расстраивать тех, кому это будет интересно, в случае, если что-то пойдёт не по плану 😅
👍6🆒1
#hypex
Вышла любопытная статейка с использованием нашей либы. Рекомендую!
https://habr.com/ru/companies/tbank/articles/915674/
Вышла любопытная статейка с использованием нашей либы. Рекомендую!
https://habr.com/ru/companies/tbank/articles/915674/
👍2
#fun #classic #ml
Если вы вдруг забыли, что такое дерево решений. То вот вам база)
Дерево решений - это модель, построенная путем рекурсивного разбиения пространства признаков на несколько непересекающихся областей (узлов дерева) в соответствии со значениями некоторых разделяющих атрибутов.
Атрибуты обычно представляют собой двоичные переменные, которые идентифицируют, что какой-либо признак превышает некоторый порог. Каждой конечной области (листу дерева) присваивается значение, которое является оценкой реакции в область для задачи регрессии или прогнозируемая метка класса в случае задачи классификации.
Если вы вдруг забыли, что такое дерево решений. То вот вам база)
Дерево решений - это модель, построенная путем рекурсивного разбиения пространства признаков на несколько непересекающихся областей (узлов дерева) в соответствии со значениями некоторых разделяющих атрибутов.
Атрибуты обычно представляют собой двоичные переменные, которые идентифицируют, что какой-либо признак превышает некоторый порог. Каждой конечной области (листу дерева) присваивается значение, которое является оценкой реакции в область для задачи регрессии или прогнозируемая метка класса в случае задачи классификации.
🤡2
#classic #ml
Наверное все знают, что не только CatBoost может обрабатывать категориальные фичи автоматически. LGBM тоже может, но они это делают по-разному.
LGBM на каждом шаге градиента делает TargetEncoding. Процесс не самый быстрый и требует приличное количество памяти, так как каждый энкодинг надо мапить. Процесс интересный, однако сами разрабы LGBM рекомендуют энкодить категории до подачи в модель.
Наверное все знают, что не только 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 усредняются по всем перестановкам
* Это снижает дисперсию оценок, особенно для первых примеров в перестановке
Продолжаем тему кодирования категорий. В прошлый раз затронули 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
Читаю книгу про визуализацию данных... Большую часть из того, что уже прочитал, читалась с телефона. Сейчас наконец добрался до бумажной... И насколько же она в таком формате лучше идет. Графики красивые и на своих местах, заголовки цветастые. Белые страницы с телефона вообще неприятно читать, а не белые искажают цвета.
В общем, мой вывод такой: если в книге картинки и цвет - это важно, то бумага определённо лучше телефона.
Интересно еще попробовать электронную книгу с цветным e-ink, но не насколько, чтобы тратить на это 20+к, да и бумагу я все же люблю больше.
В общем, мой вывод такой: если в книге картинки и цвет - это важно, то бумага определённо лучше телефона.
Интересно еще попробовать электронную книгу с цветным 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. Схему рисовал сам для вас😊
Сегодня буду рассказывать о том, что такое предвзятость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 млн. записей
⏳Долгие процессы стали гораздо более удобными, благодаря появлению прогресс баров.
👩💻 Да и смотреть на результаты теперь приятнее благодаря форматированию в резюме
🔫 Не говоря уже про исправленные ошибки
В общем, все бегом обновляться 😊
Новый релиз!
https://github.com/sb-ai-lab/HypEx/releases/tag/v1.0.2
Справедливости ради скорость АА теста совсем не только я ускорял, но и Ваня с Настей. Я больше ревьюил, замерял, рефакторил, ну и код заливал.
Но гайз, если вы пользуетесь нашей либой...
⏳Долгие процессы стали гораздо более удобными, благодаря появлению прогресс баров.
В общем, все бегом обновляться 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2