Champion-Challenger (Претендент-Чемпион) - это подход, позволяющий с минимальным риском проверить любую гипотезу на практике. Суть этого метода состоит в том, чтобы на работающем или уже отработавшем в реальной жизни процессе (Чемпион) выделить часть и изменить на ней условия таким образом, чтобы они удовлетворяли проверяемой гипотезе (Претендент). То есть процесс делится на части, где каждая из меньших частей "претендует" на то, чтобы стать основной в случае успешных результатов, или отмереть в случае не успешных.
Чтобы понять, как это применяется на практике, представьте себе что обязательным условием для выдачи кредита в банке является предоставление клиентом справки о доходах 2НДФЛ и каждый человек, рассчитывающий получить заем, должен её предоставить. Допустим, портфельный менеджер, отвечающий за доходность кредитного продукта, решает что величина дефолта (невозврата кредита) никак не зависит от наличия у клиента справки 2НДФЛ. Однако, на данном этапе это просто гипотеза, нуждающаяся в проверке. Для того чтобы её проверить, портфельный менеджер может разделить поток всех кредитных заявок так, чтобы у 1 из 10 клиентов справка не запрашивалась, а у остальных по-прежнему была необходима. При этом человек должен выбираться случайно, иначе эксперимента не получится. Это обязательное условие. Таким образом у нас появилась стратегия претендент (НДФЛ не запрашивается), которая при подтверждении гипотезы (отсутствие влияния справки на дефолт) может стать чемпионом (масштабируется на весь поток).
Важной частью процесса Champion-Challenger является анализ результатов, где каждая из частей (Претендент или Чемпион) принимается за 100%. В нашем случае, при предоставлении кредита 100 клиентам, нужно считать отдельные целевые показатели (дефолт) для 90 человек, обработанных по стратегии "Чемпион" и 10 человек, обработанных по стратегии "Претендент". Если при прочих равных дефолт у 10 человек, не предоставляющих 2НДФЛ, такой же или ниже чем у 90 предоставляющих, то нет смысла просить клиента подтверждать доход справкой. Гипотеза проверена. Претендент становится чемпионом.
Как настроить Champion-Challenger
Для того, чтобы претендент-чемпион заработал нам потребуется:
- Определить доли претендента и чемпиона. Например, 0,1 (10%) и 0,9 (90%). Доли, как правило, устанавливаются самим экспертом, проводящим Champion-Challenger
- Выбрать параметр, с уникальной нумерацией, по которому будет происходить деление. Для баз данных это может быть номер строки (rowid), для физических лиц - сочетание серии и номера паспорта, для юридических лиц - ИНН. Главное, чтобы нумерация была уникальная для каждого конкретного наблюдения. Уникальный номер нужен для последующей идентификации наблюдения или получения одинакового случайного числа для конкретного наблюдения каждый раз (об этом ниже)
- Сгенерировать для каждого наблюдения случайное число от 0 до 1. Практически в каждом из предлагаемых на рынке решений, есть функции-генераторы псевдослучайных чисел. Для sas и sql, например - это RAND(), для excel - RAND() или СЛЧИС()
- В зависимости от полученного в п.3 случайного числа, определяем к какой ветви относится наблюдение. Если случайное число меньше или равно 0,1 (по условиям из п.1), то Претендент. Остальное - чемпион
- При применении на потоке, когда мы не знаем сколько раз будет обрабатываться клиент и какие данные придут на вход (в отличие от базы данных, где набор известен заранее), мы наверняка захотим чтобы одни и те же клиенты обрабатывались по одной и той же стратегии. Будет странно если на каждом этапе проверки банк будет менять решение просить или не просить 2НДФЛ у клиента. Чтобы этого избежать, нужно получать одинаковое случайное число для конкретного наблюдения каждый раз. Добиться этого можно разными способами. Можно использовать специальные функции языков программирования, такие как sas streaminit() где параметром функции будет номер, который мы выбрали в п.2, например streaminit(INN). Тогда для одного и того же ИНН случайное число будет всегда одно и то же. Если ваш инструмент не поддерживает аналогичные функции, можно сохранить сочетание номера из п.2 и случайного числа из п.3 в базу данных и перед работой механизма проверять данные на наличие в этой таблице. Если данные есть - брать оттуда, нет - генерить новое случайное число и записывать в базу.
В итоге мы получаем процесс, разделенный на две части Претендент-Чемпион. Остается только проанализировать пилот и принять решение работает гипотеза или нет.
Где применяется: кредитование, collection, antifraud