Постановка проблемы кредитного скоринга
В предыдущей статье я упомянул задачу кредитного скоринга и отметил, что результаты могут быть нестабильными, а качество модели со временем ухудшается.
Давайте погрузимся немного глубже. Когда я пытаюсь вспомнить детали алгоритма и поделиться математическими расчетами, я не могу не добавить несколько примечаний — например, использование Oracle PL/SQL для подготовки набора данных. Надеюсь, это тоже интересно.
Когда нам нужно решить, давать ли кредит заявителю, у нас есть его заявка. Мы можем найти его предыдущие заявки и посчитать кучу факторов:
- сколько разных номеров мобильных телефонов они использовали;
- сколько разных названий улиц было упомянуто;
- и так далее.
Вкратце, деревья решений с градиентным усилением (GBDT) делят наших клиентов на группы по пороговым правилам и присваивают каждой группе постоянный балл. Высокий балл означает, что группа с большей вероятностью объявит дефолт; низкий балл указывает на надежных клиентов, которые вернут долг.
Проблема в том, что факторы со временем меняют свою силу – и даже свое значение.
Возьмем, к примеру, функцию «ровно три номера телефона в истории пользователя». Мы проверяли три года подряд: 2014, 2015, 2016. Средний уровень мошенничества в каждом году составлял 1%. Мы провели простую проверку роста: выбрали группу ровно с тремя телефонными номерами и рассчитали среднее целевое значение для каждого года. Результаты:
- 2014 г.: 1,5%
- 2015: 1%
- 2016: 0,5%
В 2014 году этот фактор был убедительным свидетельством более высокого риска мошенничества. В 2015 году он стал нейтральным. В 2016 году его полярность поменялась: он предложил более законного покупателя.
В следующий раз я расскажу о подготовке набора данных и о том, почему меня не устраивает Oracle PL/SQL.
