Многое из того, что мы делаем в James, основано на точных прогнозах, часто с использованием моделей машинного обучения. Один из способов, которым мы помогаем кредиторам, - это помочь им принять «непараметрические модели». Но что такое непараметрическая модель и почему они иногда оказываются более предсказуемыми?

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

Начнем с номенклатуры, что значит быть «непараметрическим»? Как видно из названия, это просто означает, что модель не зависит от параметров подгонки.

Например, линейная регрессия - это параметрическая модель, поскольку она зависит от параметров подгонки («бета» и члена перехвата), чтобы иметь возможность делать прогнозы.

Мы превращаем эту модель в предсказатель вероятности с помощью простого сигмовидного преобразования, заставляя ее возвращать число от 0 до 1, которое можно интерпретировать как вероятности:

Для линейной регрессии:

Для логистической регрессии:

Например, если у нас есть этот набор данных, мы можем легко сказать, что наблюдения с высоким риском (красным) находятся слева, где a - маленьким, а ссуды с низким риском (зеленым) - на правая сторона:

Если мы применим логистическую регрессию к этому набору данных, мы получим следующее:

Что более визуально становится

Достаточно просто, правда? Мы можем взять набор данных, выяснить, какие значения бета0, бета1,… лучше всего предсказывают его, и у нас есть модель для предсказания новых наблюдений. То, как мы это понимаем, включает в себя такие концепции, как градиентный спуск и методы, позволяющие избежать переобучения, но мы пока оставим их вне обсуждения.

Как насчет непараметрических моделей?

Самая простая непараметрическая модель - это дерево решений. Как показывает эта (немного упрощенная) модель, построить это несложно:

  1. Возьми свой тренировочный набор.
  2. Для каждой функции выясните, насколько хорошо каждая функция может разделить обучающий набор на две половины. «Насколько хорошо» здесь формально определяется по-разному, но мы можем думать об этом здесь как «сделать две половинки как можно более разными, с точки зрения того, что мы пытаемся предсказывать". В идеале мы хотим максимально приблизиться к отправке «товаров» в одну сторону, а «плохих» - в другую.
  3. Выберите функцию, которая лучше всего разделяет набор данных, и разделите набор данных по наилучшему разделению (например, если это доход, возможно, разделение на 2000 долларов создает больше «неравных» групп, чем разбиение на 3000 долларов).
  4. Для каждой из двух групп вернитесь к шагу 1 и повторяйте до тех пор, пока не будут достигнуты некоторые критерии остановки.

В качестве примера рассмотрим следующий набор данных:

Мы легко можем взглянуть на это и увидеть, что это какой-то «крест». Низкие значения a положительны, но только там, где b высокое, и наоборот. Есть некоторый «шум», поэтому данные не слишком очевидны для разделения.

Если мы применим нашу древовидную модель к этому набору данных, что она будет делать?

Во-первых, он заметит, что элемент A лучше подходит для первого разделения, чем элемент B. Таким образом, он будет разделен по горизонтали, где A равно 5.5.

Затем у него есть две группы, которые уже немного отличаются. Итак, он возвращается к разделению и снова разделяет обе группы. Этот «второй уровень» делает их довольно однородными. Вот как он прогнозирует этот «перекрестный» набор данных:

Что соответствует нашей интуиции. Мы можем заметить несколько ошибок (белая точка в правом верхнем квадранте), но похоже, что это небольшой шум.

Отсюда возникает вопрос, как бы наш старый друг, логистическая регрессия, справился с этой проблемой?

Не очень хорошо. Это потому, что логистическая регрессия - это, по сути, прославленная линейная регрессия, а линейная регрессия ... ну ... линейная.

А что, если мы немного усложним ситуацию?

Немного сложнее, но для нас, людей-нейронных сетей, это все еще достаточно просто. Кажется, что там происходит какая-то форма «инь-янь». Так как же наша логистическая регрессия может это предсказать?

Честно говоря, не очень хорошо. Может быть, наша древовидная модель может быть лучше?

Не… ужасно, но и не слишком здорово. Мы можем заметить, что в левом верхнем углу есть область с множеством черных точек, что модель предсказала неверно.

Частично проблема с деревьями решений заключается в поиске компромисса смещения и дисперсии. Если мы используем слишком мелкие деревья (недостаточно уровней), он не заметит, что ему нужно «адаптироваться» к черным точкам в верхнем левом углу. Что произойдет, если мы увеличим количество разбиений, которое разрешено дереву?

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

Как добиться компромисса смещение - дисперсия? Одна простая для понимания идея - использовать Bagging на наших деревьях решений.

По сути, мы обучаем несколько деревьев, и каждому разрешено видеть только подмножество данных и подмножество функций. Затем голосуют все деревья. Если мы обучаем 100 деревьев, 20 из которых предсказывают 1, а 80 предсказывают 0, результат «голосования» 0,2.

Это основа известной модели Случайный лес, как показано на рисунке 9.

Что бы произошло, если бы мы использовали 100 деревьев в классификаторе случайных лесов, чтобы предсказать нашу проблему «инь-янь»?

Разница существенная. Эта модель теперь, кажется, имеет четкое представление о том, где может быть «граничная» область, и в то же время меньше реагирует на шум.

Есть еще один трюк, который мы можем использовать, это использовать технику под названием Boosting (здесь мы объясним Adaboost, поскольку он более интуитивно понятен, чем общий случай). Как и в случае с Bagging, мы обучаем несколько деревьев, но теперь вместо того, чтобы делать это случайным образом, мы будем более стратегическими: мы обучаем наше первое дерево, и в некоторых случаях мы получаем его правильно, а в других - неправильно. Затем мы взвешиваем те, в которых мы ошиблись, и обучаем другого слабого ученика, как показано на рисунке 11:

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

Более подробную информацию о Boosting и Bagging вы можете найти в статье Джеймс о машинном обучении в моделировании кредитного риска).

И наконец, большой вопрос: как работает этот комбинированный классификатор? Что ж, давайте посмотрим, как это работает в нашем наборе данных «инь-янь»:

Как мы видим, он может определять гораздо более сложные закономерности и делать некоторые интересные прогнозы. Один из недостатков, который мы могли бы заметить, заключается в том, что при наивном использовании, как мы это сделали здесь, он все же может немного переоснащаться в определенных регионах (обратите внимание на вертикальную зеленую полосу вокруг A = 1,5), однако по большей части он очень хорошо справился с задачей понимание картины.

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

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

Мы провели сравнение логистической регрессии и классификатора градиентного повышения и сравнили результаты. Модели были оптимизированы с помощью Байесовской оптимизации в Джеймсе. Анонимные результаты получены от Джеймса, ИИ кредитного риска. Результаты представлены на Рисунке 14:

Зеленым цветом мы видим разницу между логистической регрессией и классификатором повышения градиента (положительное значение означает, что усиление градиента было более предсказуемым). Чаще всего Gradient Boosting более предсказуем. Показателем является ROC AUC (площадь под кривой характеристики оператора-приемника, тесно связанной с коэффициентом Джини).

Следующий график суммирует различия:

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

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

Также интересно отметить, что очень часто наборы данных, где разница выше, - это те, где данные менее предварительно обработаны, что предполагает, что непараметрические модели могут иметь дело с менее «классическими» и чистыми наборами данных.

Для получения более подробной информации о различных классификаторах кредитного риска, пожалуйста, ознакомьтесь с техническими документами Джеймса.