+ Reply to Thread
Results 1 to 11 of 11

Thread: Поведенческая скоркарта

  1. #1
    Участник Сообщества Newt24 без репутации
    Join Date
    1/2015
    Location
    Almaty
    Posts
    20
    Thanks
    12
    Thanked 2 Times in 2 Posts

    Поведенческая скоркарта

    Добрый день, коллеги!

    По аппликационной скоркарте более менее если понятно, то по поведенческой пока не очень. Вопрос, какие переменные вы используете у себя в поведенческих моделях?

    Также вопрос - оффтоп: недавно зарубежный консультант говорил, что AGB модель не всегда лучше KGB, никто не встречал данную статью? У меня тоже есть ощущения что KGB должна быть лучше, правда незнаю как это доказать.

  2. #2
    Bank Risk Manager imouse имеет положительные отзывы
    Join Date
    7/2012
    Location
    Недоступно
    Posts
    168
    Thanks
    45
    Thanked 33 Times in 25 Posts

    Re: Поведенческая скоркарта

    Quote Originally Posted by Newt24 View Post
    Добрый день, коллеги!

    По аппликационной скоркарте более менее если понятно, то по поведенческой пока не очень. Вопрос, какие переменные вы используете у себя в поведенческих моделях?
    .
    As always, различные агргегаты по внутренней кредитной истории. Частоты просрочек, глубина, отношения сумм и прочие фантазии, все примерно то же самое, что обычно делают в аппликационных по данным БКИ. Если настроены триггеры и есть адекватная глубина накопленной информации по триггерам - то и атрибуты, построенные на них, они хорошо работают. Можно так же добавить что-то из collection логов, как-то: отвечал на звонок, обещал заплатить/заплатил в срок/не срок, опоздал с обещанной датой платежа на %%дни%%. Разного рода - какие продукты и как использует, регулярные платежи через банк (комуналка, телефон, интернет) и прочие. Движения по прочим счетам, если таковые имеются. Для кредитных карт - все те переменные, что используют для револьверов/транзакторов. То есть это масса агрегатов на данных из процессинга (находил какие-то статьи по запросу Transaction risk score).

    Quote Originally Posted by Newt24 View Post
    Также вопрос - оффтоп: недавно зарубежный консультант говорил, что AGB модель не всегда лучше KGB, никто не встречал данную статью? У меня тоже есть ощущения что KGB должна быть лучше, правда незнаю как это доказать
    Интересно было бы почитать. Но постановка вопроса - "не всегда лучше" сама по себе универсальна. Во всем этом piece of...почти касательно всего можно сказать что что-то не всегда лучше чего-то.
    Субъективно, используя тот же ретроскоринг по моделям бюро можно нехило так улучшить качество reject inference используя fuzzy aug.
    А может можно и просто купить данные у БКИ в формате наихудший платежный статус отказного-субъекта спустя n месяцев после отказа.

  3. The Following 2 Users Say Thank You to imouse For This Useful Post:

    johnny (28.02.2017), Newt24 (28.09.2016)

  4. #3
    Участник Сообщества Yeti без репутации Yeti's Avatar
    Join Date
    2/2012
    Location
    YetiLand
    Posts
    37
    Thanks
    20
    Thanked 1 Time in 1 Post

    Re: Поведенческая скоркарта

    Добрый день,
    Коллеги, подскажите пожалуйста, что может означать если коэффициенты регрессии (лог рег.) больше 1 (к примеру, по переменному остаток ОД, 4 группы которая монотонна растет, могут выйти коэффициенты 0, 1.36, 3.79, 4,46), и что значит если константа отрицательная?

  5. #4
    Bank Risk Manager imouse имеет положительные отзывы
    Join Date
    7/2012
    Location
    Недоступно
    Posts
    168
    Thanks
    45
    Thanked 33 Times in 25 Posts

    Re: Поведенческая скоркарта

    Quote Originally Posted by Yeti View Post
    Добрый день,
    Коллеги, подскажите пожалуйста, что может означать если коэффициенты регрессии (лог рег.) больше 1 (к примеру, по переменному остаток ОД, 4 группы которая монотонна растет, могут выйти коэффициенты 0, 1.36, 3.79, 4,46), и что значит если константа отрицательная?
    Если память не изменяет, то отрицательная константа (aka offset) случается если доля "событий" или там "не-событий" (тут уж кто что за что считает) в рабочей выборке меньше, чем в исходной поппуляции.
    Константа лишь компенсирует разницу в долях событий-несобытий в рабочих и тестовых выборках.
    Ну и как вариант - раз уж вопрос в такой теме, то скорее всего строите модель поведенческого скора, и, возможно, что оцениваете "вероятность" попасть в дефолт, вместо того, чтобы оценивать "вероятность" не попасть в дефолт (грубо говоря строите модель в которой событие - дефолт, а не "хороший" счет).
    Уменьшение вероятности - это движение по оси логита влево, значит, требуется уменьшение константы.
    Увеличение вероятности - это движение по оси логита вправо, значит, требуется увеличение константы.
    Надеюсь, ничего не напутал..
    А что касается коэффициентов - а что им мешает быть больше 1?

  6. #5
    Участник Сообщества jeff заслуживает особого внимания jeff заслуживает особого внимания
    Join Date
    6/2007
    Location
    Нью-Йорк
    Posts
    345
    Thanks
    42
    Thanked 143 Times in 106 Posts

    Re: Поведенческая скоркарта

    Вместо того, чтобы разбивать остаток ОД на диапазоны и кодировать в dummy variables, лучше на вход модели подать собственно остаток ОД. Или может кубический корень остатка ОД (логарифм для бедных). Никакой потери информации от квантования и никаких проблем с интерпретацией коэффициентов.

  7. #6
    Участник Сообщества Newt24 без репутации
    Join Date
    1/2015
    Location
    Almaty
    Posts
    20
    Thanks
    12
    Thanked 2 Times in 2 Posts

    Re: Поведенческая скоркарта

    Построил я кстати поведенческую скоркарту. Так получилось, что данные из collection и информация по платежам оказались очень сильными переменными. Эти две переменные дают в совокупности 0,6 GINI, плюс еще че то там, и получилась скоркарта с GINI 0.72.

  8. #7
    Участник Сообщества NeP неоднократно положительно отмечен
    Join Date
    11/2012
    Location
    Москва
    Posts
    83
    Thanks
    9
    Thanked 70 Times in 34 Posts

    Re: Поведенческая скоркарта

    1. Это на out-of-time или out-of-sample? Второй способ (который при этом чаще всего используют) дает обычно завышенную оценку качества модели, особенно при использовании неробастных методов (от деревьев до SVM). Строго говоря, это даже не переобучение - алгоритм просто честно находит зависимости, которые имели место в прошлом, но никогда не повторятся в будущем.
    2. Вы в процессе разные срезы для каждого клиента делали а-ля базелевские модели? Одна из самых распространенных ошибок при разработке поведенческих карт в том, что при подготовке обучающей и тестовой выборки эти срезы перемешивают по всем клиентам и потом делят на 2 части. В итоге одни и те же клиенты попадают и в тестовую, и в обучающую выборку. Не, "качество" модели при этом впечатляющее, хорошо за 70 джиней, но так делать не надо, это приводит к переобучению. Самое смешное, когда таких икспердов в пример ставят - какие у них де модели качественные.
    3. Что использовали в качестве целевого признака? Ситуации, когда 2 переменные позволяют делать хороший прогноз иногда бывают, но я в таких ситуациях сначала всегда подозреваю или data leakage, как это на Kaggle называют, или что я чего-то недопонял в структуре данных и там есть какие-то особенности, типа когда задним числом что-то дозаписывается (у меня был кейс, когда в бд сделки, проверенные аудиторами, особо помечались, поэтому при первичном анализе поле, где эти пометки делались, сильно "выстреливало" в качестве сильного предиктора, причем это было неочевидно и нигде не было документировано) Другой пример такого вида, уже с Kaggle, это когда в задаче "купят ли чуваку пиццу на Reddit" самой сильной переменной оказалось "имя, кто чуваку купил пиццу". Я долго смеялся: косяк не сразу заметили, т.к. люди с Kaggle очень любят xgboost, а при таком подходе "утечки" найти маловероятно. А там одна эта переменная исход, считай, предсказывала.

    Настораживает "данные из collection и информация по платежам оказались очень сильными переменными" (...в прогнозировании платежей в сollection)
    У меня в практике был очень яркий случай, когда иксперды определили отток как отсутствие операций по счетам в течении 3 месяцев, захреначили в xgboost и радовались Gini 80. Когда мне поставили задачу разобраться, почему на практике сие чудо не работает (мне часто приходится выполнять функции "модельного паталогоанатома"), я выяснил (там и другие проблемы были...с отбором данных в частности, но не суть), что один из самых сильных предикторов получается типа "снял все деньги по счета". Это надо было включать в ОПРЕДЕЛЕНИЕ оттока, но и заказчикам, и исполнителям хотелось быстро и красиво, а не правильно.
    Last edited by NeP; 08.04.2017 at 22:53. Reason: грамматика

  9. #8
    Bank Risk Manager imouse имеет положительные отзывы
    Join Date
    7/2012
    Location
    Недоступно
    Posts
    168
    Thanks
    45
    Thanked 33 Times in 25 Posts

    Re: Поведенческая скоркарта

    Quote Originally Posted by NeP View Post
    2. Вы в процессе разные срезы для каждого клиента делали а-ля базелевские модели? Одна из самых распространенных ошибок при разработке поведенческих карт в том, что при подготовке обучающей и тестовой выборки эти срезы перемешивают по всем клиентам и потом делят на 2 части. В итоге одни и те же клиенты попадают и в тестовую, и в обучающую выборку. Не, "качество" модели при этом впечатляющее, хорошо за 70 джиней, но так делать не надо, это приводит к переобучению..
    Сталкивался сам с такой своей же ошибкой. Долго удивлялся тому, что на отдельных срезах все не так красиво получается как на development sample (оставлял крайние срезы и пару средних для тестирования отдельных периодов)

  10. #9
    Участник Сообщества Newt24 без репутации
    Join Date
    1/2015
    Location
    Almaty
    Posts
    20
    Thanks
    12
    Thanked 2 Times in 2 Posts

    Re: Поведенческая скоркарта

    Quote Originally Posted by NeP View Post
    1. Это на out-of-time или out-of-sample? Второй способ (который при этом чаще всего используют) дает обычно завышенную оценку качества модели, особенно при использовании неробастных методов (от деревьев до SVM). Строго говоря, это даже не переобучение - алгоритм просто честно находит зависимости, которые имели место в прошлом, но никогда не повторятся в будущем.
    Тестировал point in time (если я правильно понимаю этот термин, стандартные 70/15/15)
    Quote Originally Posted by NeP View Post
    2. Вы в процессе разные срезы для каждого клиента делали а-ля базелевские модели? Одна из самых распространенных ошибок при разработке поведенческих карт в том, что при подготовке обучающей и тестовой выборки эти срезы перемешивают по всем клиентам и потом делят на 2 части. В итоге одни и те же клиенты попадают и в тестовую, и в обучающую выборку. Не, "качество" модели при этом впечатляющее, хорошо за 70 джиней, но так делать не надо, это приводит к переобучению. Самое смешное, когда таких икспердов в пример ставят - какие у них де модели качественные.
    Срезы делались без перемешивании, с примерным сохранением процента зависимой переменной. То есть если есть 1000 клиентов и из них 100 плохих, то для теста бралось 100 клиентов с ~10 плохими. Или я что-то неправильно понял?
    Quote Originally Posted by NeP View Post
    3. Что использовали в качестве целевого признака? Ситуации, когда 2 переменные позволяют делать хороший прогноз иногда бывают, но я в таких ситуациях сначала всегда подозреваю или data leakage, как это на Kaggle называют, или что я чего-то недопонял в структуре данных и там есть какие-то особенности, типа когда задним числом что-то дозаписывается (у меня был кейс, когда в бд сделки, проверенные аудиторами, особо помечались, поэтому при первичном анализе поле, где эти пометки делались, сильно "выстреливало" в качестве сильного предиктора, причем это было неочевидно и нигде не было документировано) Другой пример такого вида, уже с Kaggle, это когда в задаче "купят ли чуваку пиццу на Reddit" самой сильной переменной оказалось "имя, кто чуваку купил пиццу". Я долго смеялся: косяк не сразу заметили, т.к. люди с Kaggle очень любят xgboost, а при таком подходе "утечки" найти маловероятно. А там одна эта переменная исход, считай, предсказывала.
    Целевой признак 90+@12MOB. Две переменные это: корзины с просрочками за предыдущий год (типа 0 дней, 1-5 дней, 5-11, 11-34, 34-89), вторая переменная это коэффициент сумма платежей за год, деленное на 12 * ежемесячный платеж.

    Quote Originally Posted by NeP View Post
    Настораживает "данные из collection и информация по платежам оказались очень сильными переменными" (...в прогнозировании платежей в сollection)
    У меня в практике был очень яркий случай, когда иксперды определили отток как отсутствие операций по счетам в течении 3 месяцев, захреначили в xgboost и радовались Gini 80. Когда мне поставили задачу разобраться, почему на практике сие чудо не работает (мне часто приходится выполнять функции "модельного паталогоанатома"), я выяснил (там и другие проблемы были...с отбором данных в частности, но не суть), что один из самых сильных предикторов получается типа "снял все деньги по счета". Это надо было включать в ОПРЕДЕЛЕНИЕ оттока, но и заказчикам, и исполнителям хотелось быстро и красиво, а не правильно.
    хмм, даже не знаю. Если клиент периодически допускает большие просрочки, то очевидно что он не очень "хороший", но неоднозначно как в примере с Kaggle про пиццу.

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

  11. #10
    Участник Сообщества NeP неоднократно положительно отмечен
    Join Date
    11/2012
    Location
    Москва
    Posts
    83
    Thanks
    9
    Thanked 70 Times in 34 Posts

    Re: Поведенческая скоркарта

    1. Если Вы берете некие сущности (клиенты, заявки, договоры и т.д.), с которыми шла работа в течении, например, года и делите их в какой-то пропорции на обучение/тест, то это out-of-sample. У Вас именно этот случай. Если Вы формируете обучающую выборку из сущностей за первые, например, 10 месяцев, а качество проверяете на последних 2, это OOT. Метрики качества на OOT всегда ниже, чем на OOS, но в бою они проседают меньше, чем OOS. Нередко оказывается, что они даже лучше OOS. По сути OOT спасает от очень специфической проблемы, которая есть во всех задачах с существенным фактором времени - можно найти то, что действительно было когда-то в прошлом (то есть Вы объективно не переобучились), но это НИКОГДА не повторится в будущем.
    2. Вы, похоже, путаете семпл и срез - это разные вещи. Дело в том, что одним из наиболее существенных преимуществ поведенческих моделей является то, что можно рассматривать одного и того же клиента/договор/компанию/... в разные моменты времени. Это существенно повышает качества модели
    3. 90+@12MOB....У Вас задача - прогнозирование финальных потерь по просроченной задолженности? Или все-таки повышение качества сборов и снижение издержек? (я просто не очень понимаю Вашу конечную цель)
    Целевые переменные типа "отношение ОД по кредитам, которые на MOB (месяце жизни) находятся в просрочке N+, к сумме выдач в данном поколении" они все-таки больше про первое. Даже если Вы смотрите на факт выхода на просрочку N+ на MOB (месяце жизни) - Вы же в одну модель запихиваете и тех, кто с 0 скатился в 120+ без промежуточных остановок, и тех, кто уходил в просрочку, возвращался в график и опять выходил на просрочку.
    Я не то, чтобы очень много именно моделей hard collection делал (я задачи оптимизации поздних сборов люблю чуть больше, чем задачи микрокредитования, которыми я принципиально не занимаюсь), но я обычно начинал анализ с построения матрицы переходов, и строил модели перехода с одного уровня просрочки на другой, исходя из того, что roll-rate показывает (надо оценивать переход с 30+ на 60+ или сразу на 90 или 120?, например), обычно несколько моделей в итоге получалось. Эффективность оценивал по recovery винтажам (строится как разница между gross и net loss), с разным определением валовых потерь (отсечки на 30+, 90+, 180+, например), если хотел не просто на эффективность сборов посмотреть, а на эффективность конкретных этапов (soft-hard-legal)
    У Вас же сейчас получается, что кто платил - тот скорее всего хоть что-то да и заплатит, а кто возвращался в график, тот, возможно, вернется, опять.
    Нет, в целом, все верно - с человеком, который выпал из окна, скорее всего случится несчастный случай уже в ближайшие секунды, но зачем бизнесу такая модель, если там некуда управляющие воздействия прикладывать?
    Силы экономить и сразу отправлять тех, кто "роллится" все глубже и глубже, на Legal? Это можно было банальной экспертной сегментацией сделать на основе тех же roll-rate. Машинка для этого не нужна.

  12. #11
    Участник Сообщества Newt24 без репутации
    Join Date
    1/2015
    Location
    Almaty
    Posts
    20
    Thanks
    12
    Thanked 2 Times in 2 Posts

    Re: Поведенческая скоркарта

    Quote Originally Posted by NeP View Post
    1. Если Вы берете некие сущности (клиенты, заявки, договоры и т.д.), с которыми шла работа в течении, например, года и делите их в какой-то пропорции на обучение/тест, то это out-of-sample. У Вас именно этот случай. Если Вы формируете обучающую выборку из сущностей за первые, например, 10 месяцев, а качество проверяете на последних 2, это OOT. Метрики качества на OOT всегда ниже, чем на OOS, но в бою они проседают меньше, чем OOS. Нередко оказывается, что они даже лучше OOS. По сути OOT спасает от очень специфической проблемы, которая есть во всех задачах с существенным фактором времени - можно найти то, что действительно было когда-то в прошлом (то есть Вы объективно не переобучились), но это НИКОГДА не повторится в будущем.
    2. Вы, похоже, путаете семпл и срез - это разные вещи. Дело в том, что одним из наиболее существенных преимуществ поведенческих моделей является то, что можно рассматривать одного и того же клиента/договор/компанию/... в разные моменты времени. Это существенно повышает качества модели
    3. 90+@12MOB....У Вас задача - прогнозирование финальных потерь по просроченной задолженности? Или все-таки повышение качества сборов и снижение издержек? (я просто не очень понимаю Вашу конечную цель)
    Целевые переменные типа "отношение ОД по кредитам, которые на MOB (месяце жизни) находятся в просрочке N+, к сумме выдач в данном поколении" они все-таки больше про первое. Даже если Вы смотрите на факт выхода на просрочку N+ на MOB (месяце жизни) - Вы же в одну модель запихиваете и тех, кто с 0 скатился в 120+ без промежуточных остановок, и тех, кто уходил в просрочку, возвращался в график и опять выходил на просрочку.
    Я не то, чтобы очень много именно моделей hard collection делал (я задачи оптимизации поздних сборов люблю чуть больше, чем задачи микрокредитования, которыми я принципиально не занимаюсь), но я обычно начинал анализ с построения матрицы переходов, и строил модели перехода с одного уровня просрочки на другой, исходя из того, что roll-rate показывает (надо оценивать переход с 30+ на 60+ или сразу на 90 или 120?, например), обычно несколько моделей в итоге получалось. Эффективность оценивал по recovery винтажам (строится как разница между gross и net loss), с разным определением валовых потерь (отсечки на 30+, 90+, 180+, например), если хотел не просто на эффективность сборов посмотреть, а на эффективность конкретных этапов (soft-hard-legal)
    У Вас же сейчас получается, что кто платил - тот скорее всего хоть что-то да и заплатит, а кто возвращался в график, тот, возможно, вернется, опять.
    Нет, в целом, все верно - с человеком, который выпал из окна, скорее всего случится несчастный случай уже в ближайшие секунды, но зачем бизнесу такая модель, если там некуда управляющие воздействия прикладывать?
    Силы экономить и сразу отправлять тех, кто "роллится" все глубже и глубже, на Legal? Это можно было банальной экспертной сегментацией сделать на основе тех же roll-rate. Машинка для этого не нужна.
    Спасибо за развернутый ответ, кое-что начало проясняться))

    Оффтоп вопрос, есть 90+ просрочники, они плохие, есть 0-29 дней, они условно хорошие, а 30-89 в моделях брать как хороших или как неопределенных? Скорее всего тут тоже нужно матрицу переходов, и смотреть какая часть уйдет в 90+ и давать веса может быть?

+ Reply to Thread

Similar Threads

  1. Скоркарта на R
    By Newt24 in forum Кредитные риски
    Replies: 26
    Last Post: 04.06.2015, 12:07

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts