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

Пока не были изобретены конформные прогнозные распределения (ознакомьтесь с разделом Как предсказать распределение полной вероятности с помощью машинного обучения конформных прогнозирующих распределений), общего подхода к созданию идеально откалиброванных вероятностных прогнозов не существовало, поэтому многие исследователям и практикам приходилось прибегать к методам, которые в основном оценивали параметры различных распределений с использованием статистических методов или методов машинного обучения.

Хотя такие подходы могут выглядеть как идеальное решение проблемы Святого Грааля вероятностного прогнозирования; обычно не сообщается, что методы, основанные на параметрических распределениях, не дают никаких гарантий калибровки и часто дают некалиброванные прогнозы, в результате чего как местоположение пика, так и прогнозируемые интервалы не синхронизируются с фактическими данными.

В 2020 году Стэнфордская группа машинного обучения опубликовала NGBoost, который тогда назывался «алгоритмом общего вероятностного прогнозирования с помощью повышения градиента» для оценки неопределенности прогнозов, в том числе для критически важных приложений, таких как здравоохранение».

Подход NGBoost заключался в том, чтобы расширить идею повышения градиента до вероятностной регрессии, рассматривая параметры предполагаемого распределения как цели для алгоритма повышения с несколькими параметрами. По сути, вместо оценки условного среднего авторы NGBoost предложили оценивать параметры местоположения и масштаба заданного распределения, такого как распределение Гаусса. В документе NGBoost говорится, что NGBoost «соответствует или превосходит существующие методы вероятностного прогнозирования, предлагая дополнительные преимущества в гибкости, масштабируемости и удобстве использования».

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

Однако авторы статьи не сравнивали производительность NGBoost с конформным прогнозированием. В моей статье «Как предсказать распределение полной вероятности с помощью машинного обучения Conformal Predictive Distributions» я продемонстрировал, как использование Conformal Predictive Distributions может создать идеально откалиброванный вероятностный CDF для каждой контрольной точки независимо от лежащего в основе регрессора для любых данных. распределение и любой размер выборки данных.

Итак, учитывая, что Conformal Predictive Distributions (изобретенный в 2017 году) уже давал идеально откалиброванные вероятностные прогнозы к тому времени, когда NGBoost появился примерно в 2020 году, и учитывая, что NGBoost никогда не был полностью сравним с существующей SOTA, более подробный взгляд на то, что и как делает NGBoost и как он по сравнению с другими методами, не упомянутыми в документе NGBoost, гарантируется.

Чтобы протестировать NGBoost, я использовал набор данных Concrete (также используемый в документе NGBoost, в котором среди прочих заявлена ​​производительность SOTA для этого набора данных). Этот набор данных можно найти в Хранилище данных UCI. Целевой характеристикой является concrete_compressive_strength, а целью является оценка прочности бетона по другим характеристикам.

Итак, давайте глубже погрузимся в NGBoost и увидим больше, чем сухие показатели производительности, представленные в статье NGBoost.

Распределение целевой переменной (прочность бетона) выглядит так, что, возможно, явно ненормально. Тем временем NGBoost использует нормальное распределение для оценки неопределенности прогнозов в общем случае.

Итак, что может пойти не так, если кто-то попытается предсказать целевую переменную, используя XGBoost с нормальным распределением под капотом? Давайте посмотрим.

Мы нарезаем набор данных на обучающий, проверочный и тестовый наборы. Затем мы вычисляем вероятностные прогнозы, созданные NGBoost, и наносим их на тестовый набор данных.

Что здесь происходит? Из девяти прогнозов только около трех более или менее верны, еще три несколько ошибочны, а остальные три далеки от истины.

Давайте проверим цель NGBoost: «Мы не только хотим, чтобы наши модели делали точные прогнозы, но мы также хотим, чтобы вместе с каждым прогнозом мы получали правильную оценку неопределенности».

Основываясь на критериях достоверности (отсутствие предвзятости), NGBoost кажется случайным. Так что, возможно, по критериям эффективности (покрытия) он лучше? Давайте проверим калибровку интервалов прогнозирования. Запуск чисел для покрытия интервала прогнозирования:

95% PI coverage promised by NGBoost - actual coverage 0.91
80% PI coverage promised by NGBoost - actual coverage 0.74

Не совсем так, как ожидалось, 95% PI должен обеспечивать 95%, а 80% PI должен обеспечивать 80%. Здесь у нас довольно большой разрыв в 5–6%, фактический охват намного меньше обещанного.

Каков будет результат принятия решений, основанных на таких прогнозах, учитывая, что это набор данных для оценки прочности бетона?

Ну, в таком случае неверная оценка максимальной прочности бетона может привести к чему-то подобному?

Но подождите, можно спросить, мы не использовали набор проверки для настройки параметров NGBoost. Возможно, оптимизация гиперпараметров поможет нам получить правильные прогнозы.

Давайте оптимизируем гиперпараметры на проверочном наборе и снова проверим результаты.Лучше не становится; кажется, что становится хуже в зависимости от местоположения пика по сравнению с фактической контрольной точкой. И лишь незначительно, но непостоянно лучше для охвата PI.

95% PI coverage promised by NGBoost - actual coverage 0.94
80% PI coverage promised by NGBoost - actual coverage 0.85

Прогностические интервалы все еще недостаточно хорошо откалиброваны; 80% PI превратился из слишком уверенного прогноза в недоверительный для того же набора данных с использованием той же модели!

TL;DR NGBoost не дает объективных точечных прогнозов, а его интервалы прогнозирования не откалиброваны.

Решение проблем с NGBoost?

Замените ее своей любимой моделью точечной регрессии (например, XGBoost), дополненной конформными прогнозирующими распределениями. Получите лучшее из обоих миров, высокоточных точечных прогнозов и хорошо откалиброванных вероятностных прогнозов, созданных конформными прогнозирующими распределениями. Конформные прогнозные распределения делают именно то, о чем говорят, и по умолчанию всегда обеспечивают хорошо откалиброванные интервалы прогнозирования.

Ссылки:

  1. «“Как предсказать полное распределение вероятностей с помощью машинного обучения Conformal Predictive Distributions””
  2. NGBoost: естественное повышение градиента для вероятностного прогнозирования
  3. «Вероятностные прогнозы, калибровка и точность»

3. Удивительное конформное предсказание. Самый полный профессионально составленный список руководств, видео, книг, статей и библиотек с открытым исходным кодом Awesome Conformal Prediction на Python и R. https://github.com/valeman/awesome-conformal-prediction