g никак не меняется. Вы изначально задаете его как параметр трансформационной функции для данного гиперпараметра. Для каждого гиперпараметра можно установить свое g. Если Вы считаете, что максимуму функции будут соответствовать значения данного гиперпараметра, близкие к левому краю интервала, рекомендуется устанавливать g больше 1. В противном случае - меньше 1. Самое простое - поставить g=1 и не беспокоиться. Обычно алгоритм легко найдет максимум сам.
Тут я с Вами принципиально не согласен. Data Science дает бизнесу гораздо больше, чем даже компьютеризация.
Когда в бизнесе появились компьютеры, то принципиально поменялось не многое. В большинстве сфер бизнеса просто существующие бизнес-процессы из бумажных перевели в электронные, НЕ МЕНЯЯ ИХ сути. Печатали документы на машинках – стали печатать на компьютерах, делали баланс в балансовой книге – стали делать в компьютере, вели делопроизводство в журнале, начали в электронном журнале и т.п. Т.е. бизнес-процессы стали быстрее и удобнее, но в большинстве случаев по сути не изменились.
А вот появление интернета, например, полностью изменило бизнес. Появилась возможность делать то, что раньше было в принципе невозможно. Например, массовая доставка ЛЮБЫХ товаров на дом покупателю или удаленная работа. Еще в 1980-ых такое было просто невозможно. Или работа на удаленке. Еще в 2000 – немыслимо, сегодня – обыденность.
Применение ML-моделей дает возможность принимать решения на таком уровне точности и с учетом такого количества факторов, которые значительно превосходят возможности человека. С использованием ML мы можем начать выстраивать работу с каждым клиентом на ИНДИВИДУАЛЬНОЙ основе, сколько бы клиентов у нас ни было. Раньше так работать могли только мелкие лавочники, у которых было несколько десятков клиентов и каждого они знали лично. А теперь так могут работать корпорации с десятками и сотнями миллионов клиентов.
Более того, применение ML-моделей дает возможность ВООБЩЕ уйти от субъективных человеческих решений. До сих пор бизнес строился по принципу «Я – начальник, мое мнение самое важное». Скоро этот принцип уйдет в прошлое. Только выдвижение гипотез – тестирование – внедрение оправдавших себя гипотез. Решения на основе фактов, а не основе статуса лица, принимающего решения. Это та вещь, которая реально изменит мир, в котором мы живем.
Поэтому использование в бизнесе ML-моделей – это настоящая революция, а не маркетинговая уловка, чтобы продать что-то непонятное в красивой упаковке.
И еще: в задачах изображений часто можно придумать метод размножения выборки, когда датасет увеличивается в несколько раз (повороты на случайный угол, отражение по вертикали и горизонтали, случайная обрезка и т.п.). Ваша задача допускала такие преобразования?
Наверное, мне нужно еще раз пояснить саму идею статьи.
Бизнес-заказчик мне говорит: Ваша модель может отличить плохого клиента от хорошего с точностью 60 Джини. Наверное качество модели такое низкое потому, что Вы используете простые методы (логрегрессия). Вот если бы Вы использовали нейросети, то качество модели было бы около 100 Джини.
Я отвечаю: качество модели в первую очередь зависит не от используемого метода, а от объема данных, которыми мы располагаем.
Если бы Вы имели так мало данных об окружающем мире, как мало данных мы имеем об оцениваемых компаниях, то Вы вряд ли смогли бы отличить кошку от собаки. И не потому, что нейросеть, распознающая образы, расположенная в Вашем мозге, несовершенна, а от того, что данных мало.
Не верите? Посмотрите сами - и дальше демонстрирую пикселизированные картинки. А потом исходники. То есть, я уменьшаю объем данных о реальном мире с того, который мы имеем благодаря нашему зрению, до того, который мы имеем в бизнес-модели о компаниях-клиентах. И показываю, как мы видели бы реальный мир, имей мы о нем также мало данных, как мы имеем сейчас о компаниях-клиентах.
Сегодня я размещу вторую часть и все станет очевидно.
Вопрос 2 - Data Science ближе всего к статистике. От статистики Data Science отличается методами. Статистики используют методы, которые, как правило, имеют априорные предположения о характере распределений. Метрики этих методов выводятся на основании аналитических формул. В DS используются метрики без априорных предположений о характере распределений. Метрики рассчитываются путем статистических экспериментов (бутстреп). Отличие DS от статистики обусловлено тем, что статистика создавалась, когда компьютеры были слабые и статистики не могли себе позволить большое количество расчетов. А в DS очень много статистических экспериментов в противовес аналитическим формулам.
Вопрос 3 - Эта проблема носит универсальный характер. Но предложенное мной решение применимо именно для DS. В других областях Вы можете придумать Ваши собственные методы визуализации сложных проблем.
Вопрос 4 - Во-первых, если специалист не общается с бизнес-заказчиком и не понимает потребностей последнего, то созданную модель, как правило, можно просто выбросить. Чтобы быть полезным для бизнеса, надо понимать его потребности, а не только знать моделирование.
Во-вторых, любой специалист - продавец самого себя. Сначала Вы продаете себя компании на собеседовании. И от того, как Вы себя успешно продали, зависит факт найма и размер зарплаты. Потом Вы продаете себя внутри компании. И от успешности Вашей продажи себя зависят Ваша карьера и повышение зарплаты. Я знаю многих блестящих специалистов, которые не умеют себя продавать, и много пустышек, отлично себя продающих. У вторых результаты (в карьере и в деньгах) часто бывают гораздо лучше.
Я написал эту статью для того, чтобы помочь классным специалистам занять то положение в компании, которого они достойны.
Вопрос 5 - Тут изображены собаки и кошки. Завтра Вы увидите это наглядно. А некоторые (например, уважаемый Machirodont, поделившийся своим оригинальным методом в комментариях ниже, уже видят).
Сначала набирают как можно больше признаков. Потом отсеивают нерелевантные. И в результате оставляют всего несколько, которые дают наилучший результат. Причина использования большого числа признаков проста - возможность получить максимальную точность. Причина их последующего сокращения - на проде реализация каждой переменной стоит денег и ресурсов. Чем меньше переменных (не в ущерб качеству), тем быстрее и дешевле работает модель.
Для отсеивания используются различные методы: Information Value, корреляция с таргетом, feature importance на простом дереве, feature importance на модели одномерного бустинга, критерий Колмогорова-Смирнова для двух выборок, где одна соответствует нулевым значениям таргета, а вторая - единичным, удаление коррелирующих признаков (для логистической регрессии) и т.п.
А в случае нейросетей (сейчас самый мощный метод) никто вообще не отсеивает сырые признаки. Их могут быть миллионы (отсеивание производится внутренней архитектурой нейросети).
Catboost, запущенный под pyspark, может вернуть результат расчёта одновременно 25 моделей с различными значениями гиперпараметров, рассчитанными для 5-блочной кросс-валидации (т.е. каждая из 25 моделей рассчитывается 5 раз на разных блоках выборки и результат усредняется)?
Если Вы имели в виду, что я вручную реализую алгоритм градиентного бустинга, то это не так. Я реализую алгоритм ПОДБОРА ОПТИМАЛЬНЫХ ГИПЕРПАРАМЕТРОВ для ЛЮБОГО МЕТОДА машинного обучения, в частности – для градиентного бустинга.
Альтернативой описываемому в этой статье алгоритму является не CatBoost, а такие инструменты как sklearn.GreedSearch, sklearn.RandomSearch, Optuna, Hyperopt, Байесовская оптимизация, Population Based Training и т.д. И перед всеми этими инструментами описываемый алгоритм имеет существенные преимущества.
Если же Вы спрашиваете, почему я подбираю гиперпараметры для sklearn.GradientBoostingClassifier, а не для CatBoost или же XGBoost, то причина – на системе Apache Spark, к которой я имею доступ, CatBoost не установлен. И пользователь вручную поставить его не может. Только администратор системы. Потому что CatBoost должен работать на уровне каждого Executor.
Если на Вашей системе CatBoost установлен, Вы легко можете адаптировать предлагаемый алгоритм для подбора гиперпараметров для CatBoost.
Действительно, анализирую данные на 07.04.2020, я убедился, что первая производная функции общей смертности в точке перегиба имеет более плоскую вершину, чем у логистической функции. Т.е. перегиба «растягивается» почти в прямую.
Возможно, это происходит под влиянием карантинных мер.
Придется править модель.
g никак не меняется. Вы изначально задаете его как параметр трансформационной функции для данного гиперпараметра. Для каждого гиперпараметра можно установить свое g. Если Вы считаете, что максимуму функции будут соответствовать значения данного гиперпараметра, близкие к левому краю интервала, рекомендуется устанавливать g больше 1. В противном случае - меньше 1. Самое простое - поставить g=1 и не беспокоиться. Обычно алгоритм легко найдет максимум сам.
Тут я с Вами принципиально не согласен. Data Science дает бизнесу гораздо больше, чем даже компьютеризация.
Когда в бизнесе появились компьютеры, то принципиально поменялось не многое. В большинстве сфер бизнеса просто существующие бизнес-процессы из бумажных перевели в электронные, НЕ МЕНЯЯ ИХ сути. Печатали документы на машинках – стали печатать на компьютерах, делали баланс в балансовой книге – стали делать в компьютере, вели делопроизводство в журнале, начали в электронном журнале и т.п. Т.е. бизнес-процессы стали быстрее и удобнее, но в большинстве случаев по сути не изменились.
А вот появление интернета, например, полностью изменило бизнес. Появилась возможность делать то, что раньше было в принципе невозможно. Например, массовая доставка ЛЮБЫХ товаров на дом покупателю или удаленная работа. Еще в 1980-ых такое было просто невозможно. Или работа на удаленке. Еще в 2000 – немыслимо, сегодня – обыденность.
Применение ML-моделей дает возможность принимать решения на таком уровне точности и с учетом такого количества факторов, которые значительно превосходят возможности человека. С использованием ML мы можем начать выстраивать работу с каждым клиентом на ИНДИВИДУАЛЬНОЙ основе, сколько бы клиентов у нас ни было. Раньше так работать могли только мелкие лавочники, у которых было несколько десятков клиентов и каждого они знали лично. А теперь так могут работать корпорации с десятками и сотнями миллионов клиентов.
Более того, применение ML-моделей дает возможность ВООБЩЕ уйти от субъективных человеческих решений. До сих пор бизнес строился по принципу «Я – начальник, мое мнение самое важное». Скоро этот принцип уйдет в прошлое. Только выдвижение гипотез – тестирование – внедрение оправдавших себя гипотез. Решения на основе фактов, а не основе статуса лица, принимающего решения. Это та вещь, которая реально изменит мир, в котором мы живем.
Поэтому использование в бизнесе ML-моделей – это настоящая революция, а не маркетинговая уловка, чтобы продать что-то непонятное в красивой упаковке.
Код я выложу чуть позже. Ожидаю ревью от рецензентов.
Код я выложу чуть позже. Ожидаю ревью от рецензентов.
И еще: в задачах изображений часто можно придумать метод размножения выборки, когда датасет увеличивается в несколько раз (повороты на случайный угол, отражение по вертикали и горизонтали, случайная обрезка и т.п.). Ваша задача допускала такие преобразования?
А какой был классификатор?
Сомневаюсь, что Ваша задача разрешима. Будет очень сложно подобрать картинки, похожие во всех 144 точках, еще учитывая взаимное расположение точек.
А модель уверена, что клиент хороший (а на самом деле он плохой). Именно так и возникают ошибки классификации.
Смотрите выше мой комментарий, который начинается фразой "Наверное, мне нужно еще раз пояснить саму идею статьи."
Смотрите выше мой комментарий, который начинается фразой "Наверное, мне нужно еще раз пояснить саму идею статьи."
Наверное, мне нужно еще раз пояснить саму идею статьи.
Бизнес-заказчик мне говорит: Ваша модель может отличить плохого клиента от хорошего с точностью 60 Джини. Наверное качество модели такое низкое потому, что Вы используете простые методы (логрегрессия). Вот если бы Вы использовали нейросети, то качество модели было бы около 100 Джини.
Я отвечаю: качество модели в первую очередь зависит не от используемого метода, а от объема данных, которыми мы располагаем.
Если бы Вы имели так мало данных об окружающем мире, как мало данных мы имеем об оцениваемых компаниях, то Вы вряд ли смогли бы отличить кошку от собаки. И не потому, что нейросеть, распознающая образы, расположенная в Вашем мозге, несовершенна, а от того, что данных мало.
Не верите? Посмотрите сами - и дальше демонстрирую пикселизированные картинки. А потом исходники. То есть, я уменьшаю объем данных о реальном мире с того, который мы имеем благодаря нашему зрению, до того, который мы имеем в бизнес-модели о компаниях-клиентах. И показываю, как мы видели бы реальный мир, имей мы о нем также мало данных, как мы имеем сейчас о компаниях-клиентах.
Сегодня я размещу вторую часть и все станет очевидно.
Вопрос 1 - не является принципиальным.
Вопрос 2 - Data Science ближе всего к статистике. От статистики Data Science отличается методами. Статистики используют методы, которые, как правило, имеют априорные предположения о характере распределений. Метрики этих методов выводятся на основании аналитических формул. В DS используются метрики без априорных предположений о характере распределений. Метрики рассчитываются путем статистических экспериментов (бутстреп). Отличие DS от статистики обусловлено тем, что статистика создавалась, когда компьютеры были слабые и статистики не могли себе позволить большое количество расчетов. А в DS очень много статистических экспериментов в противовес аналитическим формулам.
Вопрос 3 - Эта проблема носит универсальный характер. Но предложенное мной решение применимо именно для DS. В других областях Вы можете придумать Ваши собственные методы визуализации сложных проблем.
Вопрос 4 - Во-первых, если специалист не общается с бизнес-заказчиком и не понимает потребностей последнего, то созданную модель, как правило, можно просто выбросить. Чтобы быть полезным для бизнеса, надо понимать его потребности, а не только знать моделирование.
Во-вторых, любой специалист - продавец самого себя. Сначала Вы продаете себя компании на собеседовании. И от того, как Вы себя успешно продали, зависит факт найма и размер зарплаты. Потом Вы продаете себя внутри компании. И от успешности Вашей продажи себя зависят Ваша карьера и повышение зарплаты. Я знаю многих блестящих специалистов, которые не умеют себя продавать, и много пустышек, отлично себя продающих. У вторых результаты (в карьере и в деньгах) часто бывают гораздо лучше.
Я написал эту статью для того, чтобы помочь классным специалистам занять то положение в компании, которого они достойны.
Вопрос 5 - Тут изображены собаки и кошки. Завтра Вы увидите это наглядно. А некоторые (например, уважаемый Machirodont, поделившийся своим оригинальным методом в комментариях ниже, уже видят).
Сначала набирают как можно больше признаков. Потом отсеивают нерелевантные. И в результате оставляют всего несколько, которые дают наилучший результат. Причина использования большого числа признаков проста - возможность получить максимальную точность. Причина их последующего сокращения - на проде реализация каждой переменной стоит денег и ресурсов. Чем меньше переменных (не в ущерб качеству), тем быстрее и дешевле работает модель.
Для отсеивания используются различные методы: Information Value, корреляция с таргетом, feature importance на простом дереве, feature importance на модели одномерного бустинга, критерий Колмогорова-Смирнова для двух выборок, где одна соответствует нулевым значениям таргета, а вторая - единичным, удаление коррелирующих признаков (для логистической регрессии) и т.п.
А в случае нейросетей (сейчас самый мощный метод) никто вообще не отсеивает сырые признаки. Их могут быть миллионы (отсеивание производится внутренней архитектурой нейросети).
Кстати, хороший метод. Только что проверил - реально работает. Спасибо, раньше о таком не думал, хотя есть еще один - уменьшить размер картинок.
Catboost, запущенный под pyspark, может вернуть результат расчёта одновременно 25 моделей с различными значениями гиперпараметров, рассчитанными для 5-блочной кросс-валидации (т.е. каждая из 25 моделей рассчитывается 5 раз на разных блоках выборки и результат усредняется)?
Добрый день!
К сожалению, не знаю, как Вас зовут.
Я не совсем понял Ваш комментарий.
Если Вы имели в виду, что я вручную реализую алгоритм градиентного бустинга, то это не так. Я реализую алгоритм ПОДБОРА ОПТИМАЛЬНЫХ ГИПЕРПАРАМЕТРОВ для ЛЮБОГО МЕТОДА машинного обучения, в частности – для градиентного бустинга.
Альтернативой описываемому в этой статье алгоритму является не CatBoost, а такие инструменты как sklearn.GreedSearch, sklearn.RandomSearch, Optuna, Hyperopt, Байесовская оптимизация, Population Based Training и т.д. И перед всеми этими инструментами описываемый алгоритм имеет существенные преимущества.
Если же Вы спрашиваете, почему я подбираю гиперпараметры для sklearn.GradientBoostingClassifier, а не для CatBoost или же XGBoost, то причина – на системе Apache Spark, к которой я имею доступ, CatBoost не установлен. И пользователь вручную поставить его не может. Только администратор системы. Потому что CatBoost должен работать на уровне каждого Executor.
Если на Вашей системе CatBoost установлен, Вы легко можете адаптировать предлагаемый алгоритм для подбора гиперпараметров для CatBoost.
Возможно, это происходит под влиянием карантинных мер.
Придется править модель.