#featureselection #entropy #histogram #binning #diogenes #astropy
Один важнейший аспект своего отборщика признаков я совершенно упустил - это построение гистограмм для оценки энтропии и взаимной информации. Для улавливания связей на этапе тестирования мне хватало равномерного разбиения (непрерывной переменной) на N бинов, я просто для быстроты разработки взял KbinsDiscretizer с параметром strategy='uniform' и n_bins=4. Но даже там есть ещё варианты quantile и kmeans, их я думал потестить позже. Однако при попытке различить коллинеарные факторы на более "оригинальные" и "зависимые"/"зашумлённые" такого простого подхода перестало хватать. Да и кто сказал, что хорошо использовать одно и то же число бинов для всех факторов?
Я вспомнил про формулы Стёрджеса и прочие, довольно много вариаций оказалось реализовано в нампае. Астропай порадовал наличием расчёт байесовской гистограммы с переменным размером бина. Я заценил на своих данных, посмотрим, какая будет дискриминирующая способность всех этих подходов.
Один важнейший аспект своего отборщика признаков я совершенно упустил - это построение гистограмм для оценки энтропии и взаимной информации. Для улавливания связей на этапе тестирования мне хватало равномерного разбиения (непрерывной переменной) на N бинов, я просто для быстроты разработки взял KbinsDiscretizer с параметром strategy='uniform' и n_bins=4. Но даже там есть ещё варианты quantile и kmeans, их я думал потестить позже. Однако при попытке различить коллинеарные факторы на более "оригинальные" и "зависимые"/"зашумлённые" такого простого подхода перестало хватать. Да и кто сказал, что хорошо использовать одно и то же число бинов для всех факторов?
Я вспомнил про формулы Стёрджеса и прочие, довольно много вариаций оказалось реализовано в нампае. Астропай порадовал наличием расчёт байесовской гистограммы с переменным размером бина. Я заценил на своих данных, посмотрим, какая будет дискриминирующая способность всех этих подходов.
#binning #woe #iv #classing #monotonicity
Кстати, проведение биннинга (supervised, с метками) убирает необходимость в обработке пропущенных и редких значений, и даже (частично) выбросов.
https://www.youtube.com/watch?v=DoRd94ZjQ0E
Кстати, проведение биннинга (supervised, с метками) убирает необходимость в обработке пропущенных и редких значений, и даже (частично) выбросов.
https://www.youtube.com/watch?v=DoRd94ZjQ0E
YouTube
Биннинг и оптимальное квантование 2.0
Воркшоп знакомит с эффективным инструментом разведочного анализа, который пришел в аналитику данных из кредитного скоринга — оптимальным квантованием и биннингом данных.
Применение инструмента:
- оценка предсказательной силы отдельной переменной на выходное…
Применение инструмента:
- оценка предсказательной силы отдельной переменной на выходное…
#binning #optbinning #papers
Приятное, лёгкое для чтения интро в библиотеку OptBinning. А вот уже публикация посолиднее, с указанием алгоритмов.
Мне кажется, для задач регрессии уж точно можно уменьшить потерю информации, если заменять бин не константой (например, WoE бина), а какой-то линейной функцией от константы и значений точки. Даже странно, почему это никто еще не рассмотрел.
https://medium.com/@makhija.amit/mastering-optimal-binning-with-optbinning-a-comprehensive-guide-c6cf52572d64
Приятное, лёгкое для чтения интро в библиотеку OptBinning. А вот уже публикация посолиднее, с указанием алгоритмов.
Мне кажется, для задач регрессии уж точно можно уменьшить потерю информации, если заменять бин не константой (например, WoE бина), а какой-то линейной функцией от константы и значений точки. Даже странно, почему это никто еще не рассмотрел.
https://medium.com/@makhija.amit/mastering-optimal-binning-with-optbinning-a-comprehensive-guide-c6cf52572d64
Medium
Mastering Optimal Binning with Optbinning: A Comprehensive Guide
Binning is a powerful data preprocessing technique used in statistics, data analysis, and machine learning to group continuous data into…
#scoring #binning #woe #gini #psi
Вот еще была интересная либа vtb_scorekit.
"Алгоритм работы этого метода следующий:
Ищется разбиение на максимальное кол-во бинов. Для этого может использоваться либо наш собственный алгоритм, основанный на деревьях, либо библиотека optbinning.
Далее в найденном биннинге проводятся проверки
на тренд WOE — он может быть либо монотонным, либо V (или /\)‑образным, но во втором случае Gini переменной должно быть выше относительно монотонного тренда на заданную в параметрах величину. Такая дополнительная проверка позволяет исключить случайные отклонения от монотонности в трендах
стабильность тренда WOE — тренд должен сохраняться на всех тестовых сэмплах, и доверительные интервалы WOE в соседних бинах не должны пересекаться
стабильность Gini — Gini на всех тестовых сэмплах не должно сильно отличаться относительно обучающей выборки и все значения должны попадать в доверительные интервалы, рассчитанные бутстрэпом.
Если хотя бы одна проверка не пройдена, то максимальное число бинов уменьшается, и процедура повторяется до тех пор, пока мы не получим стабильный биннинг, удовлетворяющий всем заданным критериям.
После этого мы можем заново провести поиск уже с другим набором параметров, например, другим методом или другим критерием расщепления дерева, а затем из всех найденных стабильных биннингов автоматически выбирается оптимальный с наилучшим Gini.
В результате всех этих расчетов мы получаем и тестируем десятки (а иногда и сотни) биннингов для каждой переменной и выбираем из них лучший. Благодаря тому, что расчет каждой переменной идет полностью независимо от остальных, можно проводить все эти вычисления параллельно и, выделив большое число ядер для расчета, получать результат достаточно быстро."
Тут уже есть из коробки многофакторный анализ, проводящийся в 4 этапа:
"Сначала будут отсечены слабые и не стабильные факторы по заданным трешхолдам Gini и PSI факторов
Затем будет проведен корреляционный анализ и исключены коррелирующие факторы, либо как альтернатива этот шаг может быть пропущен, а коррелирующие факторы могут исключаться динамически по мере отбора факторов в модель. Эта опция обычно позволяет получить немного более сильную модель, но вычислительные затраты возрастают на порядок.
На третьем этапе проводится итерационный отбор факторов, который может отбирать переменные как для максимизации заданной метрики, так и по p-value переменных.
В самом конце исключаются малозначимые факторы и вошедшие в модель со знаком, противоречащим бизнес-логике."
https://habr.com/ru/companies/vtb/articles/743392/
Вот еще была интересная либа vtb_scorekit.
"Алгоритм работы этого метода следующий:
Ищется разбиение на максимальное кол-во бинов. Для этого может использоваться либо наш собственный алгоритм, основанный на деревьях, либо библиотека optbinning.
Далее в найденном биннинге проводятся проверки
на тренд WOE — он может быть либо монотонным, либо V (или /\)‑образным, но во втором случае Gini переменной должно быть выше относительно монотонного тренда на заданную в параметрах величину. Такая дополнительная проверка позволяет исключить случайные отклонения от монотонности в трендах
стабильность тренда WOE — тренд должен сохраняться на всех тестовых сэмплах, и доверительные интервалы WOE в соседних бинах не должны пересекаться
стабильность Gini — Gini на всех тестовых сэмплах не должно сильно отличаться относительно обучающей выборки и все значения должны попадать в доверительные интервалы, рассчитанные бутстрэпом.
Если хотя бы одна проверка не пройдена, то максимальное число бинов уменьшается, и процедура повторяется до тех пор, пока мы не получим стабильный биннинг, удовлетворяющий всем заданным критериям.
После этого мы можем заново провести поиск уже с другим набором параметров, например, другим методом или другим критерием расщепления дерева, а затем из всех найденных стабильных биннингов автоматически выбирается оптимальный с наилучшим Gini.
В результате всех этих расчетов мы получаем и тестируем десятки (а иногда и сотни) биннингов для каждой переменной и выбираем из них лучший. Благодаря тому, что расчет каждой переменной идет полностью независимо от остальных, можно проводить все эти вычисления параллельно и, выделив большое число ядер для расчета, получать результат достаточно быстро."
Тут уже есть из коробки многофакторный анализ, проводящийся в 4 этапа:
"Сначала будут отсечены слабые и не стабильные факторы по заданным трешхолдам Gini и PSI факторов
Затем будет проведен корреляционный анализ и исключены коррелирующие факторы, либо как альтернатива этот шаг может быть пропущен, а коррелирующие факторы могут исключаться динамически по мере отбора факторов в модель. Эта опция обычно позволяет получить немного более сильную модель, но вычислительные затраты возрастают на порядок.
На третьем этапе проводится итерационный отбор факторов, который может отбирать переменные как для максимизации заданной метрики, так и по p-value переменных.
В самом конце исключаются малозначимые факторы и вошедшие в модель со знаком, противоречащим бизнес-логике."
https://habr.com/ru/companies/vtb/articles/743392/
Хабр
Фреймворк vtb_scorekit для разработки интерпретируемых скоринговых моделей
Всем привет! Меня зовут Сакович Руслан, я занимаюсь корпоративным риск-моделированием, и сегодня расскажу о построении скоринговых моделей. Эти модели позволяют оценивать кредитные риски и являются...