Скоринг отклика

Введение

В примере демонстрируется популярная в маркетинге задача — скоринг отклика — оценка реакции потребителя на направленное ему предложение. В качестве математического инструмента для моделирования выбрана Логистическая регрессия.

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

В итоге в распоряжение аналитику доступно 21893 записи.

Исходные данные

Таблица "Клиенты":

Имя поля Метка поля
 CLIENT_ID Клиент.Код
 A_DATE Дата актуальности
 GENDER Пол
 AGE_GROUP Возрастная группа
 STATUS Статус
 TENURE Длительность регистрации (мес.)
 ACCOUNT Счет
 DISTRICT Округ
 SEGMENT Сегмент достатка
 SALES Кол-во покупок нового товара

Алгоритм

  1. Импорт исходных данных;
  2. Предобработка данных:
    • Определение откликнувшихся клиентов;
    • Заполнение пропусков;
    • Устранение незначащих факторов с помощью Корреляционного анализа;
    • Формирование конечных классов.
  3. Моделирование:
    • Построение скоринговой карты отклика;
    • Оценка качества модели.

Сценарий

Сценарий "Скоринг отклика".
Рисунок 1. Сценарий "Скоринг отклика".

 Входной набор данных

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

 Отклик

Для прогнозирования вероятности отклика на событие необходима бинарная переменная, а у нас имеется целочисленная Количество покупок нового товара (имя — "SALES"). В Калькуляторе мы сформируем требуемую бинарную переменную Отклик:

Имя поля Метка поля Описание
 Response Отклик Если Кол-во покупок нового товара больше 0, то отклик был

Проанализируем пропуски с помощью визуализатора "Статистика":

Пропуски во входном наборе.
Рисунок 2. Пропуски во входном наборе.

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

Три других столбца — Длительность регистрации (мес.), Счет и Округ — имеют ничтожно малую долю пропусков от общего количества. Примем для них метод восстановления пропусков — заменять медианой (Длительность регистрации (мес.) и Счет) и заменять наиболее вероятным (Округ).

Для того чтобы эти действия были произведены, после Калькулятора добавим узел Заполнение пропусков.

 Заполнение пропусков

На странице Заполнение пропусков Мастера настройки узла проставим Методы обработки в соответствии с таблицей, которую получили из анализа пропусков:

Входные поля Вид данных Метод обработки
1  Длительность регистрации (мес.)  Непрерывный Заменять медианой
2  Счет  Непрерывный Заменять медианой
3  Округ  Дискретный Заменять наиболее вероятным

Методы обработки остальных полей и настройки оставляем по умолчанию.

 Устранение незначащих факторов

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

Настроим узел в соответствии с рисунком ниже:

Настройка Корреляционного анализа.
Рисунок 3. Настройка Корреляционного анализа.

Проанализируем результаты:

Куб "Корреляционный анализ".
Рисунок 4. Куб "Корреляционный анализ".

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

 Конечные классы

На первом шаге Мастера настройки узла Конечные классы зададим входные и выходные поля:

Входные поля Вид данных Назначение
1  Отклик  Дискретный Выходное
2  Пол  Дискретный Входное
3  Возрастная группа  Дискретный Входное
4  Статус  Дискретный Входное
5  Длительность регистрации (мес.)  Непрерывный Входное
6  Счет  Непрерывный Входное
7  Округ  Дискретный Входное
8  Сегмент достатка  Дискретный Входное

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

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

Двойным щелчком по заголовку "IV" отсортируем его (по убыванию информационного индекса).

Конечные классы. Сортировка по IV.
Рисунок 5. Конечные классы. Сортировка по IV.

Нажмем на кнопку "Редактировать разбиение" для входа в режим редактирования результатов формирования конечных классов.

Столбец "Возрастная группа"

Возрастная группа "до 40" и "Класс пропусков" положительно реагируют на предложения, поэтому нет необходимости выделять "Класс пропусков" в отдельный класс. Уменьшим число конечных классов до 3-х путем объединения возрастных групп "до 40" и "Класса пропусков". Получим следующую диаграмму WoE-индексов.

Новое разбиение "Возрастной группы".
Рисунок 6. Новое разбиение "Возрастной группы".

Наиболее склонны к отклику люди до 40 лет, а также клиенты с пропущенными значениями в поле возрастной группы. Меньше всего откликов дают клиенты старше 60 лет. Поле обладает высокой значимостью 0,46.

Столбец "Сегмент достатка"

Ручные правки конечных классов не требуются, т.к. вес доказательства монотонно возрастает, что говорит о хорошем разбиении на классы. Получим следующую диаграмму WoE-индексов.

Разбиение "Сегмента достатка".
Рисунок 7. Разбиение "Сегмента достатка".

Люди с высоким сегментом достатка "от 80 т.р." чаще откликаются на предложение. О клиентах с пропущенными значениями и о клиентах в сегменте "от 20 до 80 т.р." ничего определенного сказать нельзя. Поле обладает высокой значимостью 0,52.

Столбец "Пол"

Класс пропусков автоматическим алгоритмом выделен в отдельный класс, необходимо его объединить с мужским полом, т.к. оба эти класса слабо реагируют на отклик в отличии от женского пола.

Новое разбиение "Пола".
Рисунок 8. Новое разбиение "Пола".

Наиболее склоны к отклику женщины. Поле обладает высокой значимостью 0,37.

Столбец "Счет"

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

Новое разбиение "Счета".
Рисунок 9. Новое разбиение "Счета".

Клиенты, потратившие до 422,91 рублей, сильнее всего реагируют на отклик, те, кто потратил от 422,91 до 5804,06 и от 5804,06 рублей, слабо реагируют на отклик. Поле обладает низкой значимостью 0,07.

Столбец "Статус"

Уникальные значения 'Золотой' и 'Платиновый' были объединены между собой. Данные клиенты меньше всего склонны к отклику. Ручные правки конечных классов не требуются. Поле обладает низкой значимостью 0,07.

Разбиение "Статуса".
Рисунок 10. Разбиение "Статуса".

Столбец "Длительность регистрации (мес.)"

Исходное поле является непрерывным. Автоматический вариант следует признать неудовлетворительным. Постоянные "развороты" (точки, в которых соседние конечные классы меняют знаки) привели к пилообразной форме диаграммы WoE-индексов. Эти "развороты" не имеют логического объяснения, вероятно, нужно сокращать число классов.

Сократим их до 3-х. Картина улучшилась: диаграмма WoE-индексов стала монотонно возрастающей.

Новое разбиение "Длительности регистрации (мес.)".
Рисунок 11. Новое разбиение "Длительности регистрации (мес.)".

Клиенты, долго сотрудничающие с компанией, менее склонны к откликам. Поле обладает низкой значимостью 0,01.

Столбец "Округ"

Разбиение на классы "Округа".
Рисунок 12. Разбиение на классы "Округа".

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

После всех правок конечных классов получим следующую значимость итогового разбиения:

Новая значимость полей.
Рисунок 13. Новая значимость полей.

 Логистическая регрессия

Метка Имя Вид данных Назначение
 Отклик Response  Дискретный Выходное
 Пол Метка GENDER_ClassMark  Дискретный Входное
 Возрастная группа Метка AGE_GROUP_ClassMark  Дискретный Входное
 Статус Метка STATUS_ClassMark  Дискретный Входное
 Длительность регистрации (мес.) Метка TENURE_ClassMark  Дискретный Входное
 Счет Метка ACCOUNT_ClassMark  Дискретный Входное
 Сегмент достатка Метка SEGMENT_ClassMark  Дискретный Входное
Разбиение на множества.
Рисунок 14. Разбиение на множества.
  • Настроим параметры Логистической регрессии, как представлено на рисунках ниже:
Настройка Логистической регрессии.
Рисунок 15. Настройка Логистической регрессии.
Детальная настройка Логистической регрессии.
Рисунок 16. Детальная настройка Логистической регрессии.

После настройки необходимо переобучить модель. Для этого нужно правой кнопкой мыши щелкнуть по узлу Логистическая регрессия и выбрать пункт меню "Переобучить узел".

 Скоринговая карта

Подмодель "Скоринговая карта".
Рисунок 17. Подмодель "Скоринговая карта".

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

Выходные Имя Назначение Значение (по умолчанию)
 Только положительные баллы за атрибуты isOnlyPositiveAttributes Не задано TRUE
 Отношение шансов в референсной точке OR Не задано 50,00
 Референсная точка ORScore Не задано 600,00
 Шаг удвоения шансов PDO Не задано 20,00
 Минимальные коэффициенты

Находим минимальные значения внутри группы меток входных полей. Для этого настроим узел Группировки, как показано на рисунке ниже:

Настройка группировки для расчета минимальных коэффициентов.
Рисунок 18. Настройка группировки для расчета минимальных коэффициентов.
 Расчет суммы непустых коэффициентов

В Калькуляторе создаем выражение:

Имя поля Метка поля Описание
 CoefMin Коэффициент|Минимум Рассчитывается разность кумулятивной суммы минимальных
непустых коэффициентов
 Формирование результирующей строки

С помощью группировки сформируем строку, содержащую сумму непустых коэффициентов:

Настройка группировки для формирования результирующей строки расчёта скорингового балла.
Рисунок 19. Настройка группировки для формирования результирующей строки расчёта скорингового балла.
 Добавление минимальных коэффициентов

Слиянием соединяем рассчитанные минимальные коэффициенты и входной набор Подмодели. В Мастере настройки узла выбираем "Левое соединение" и связываем поля "Метки входных полей".

 Минимальные, максимальные коэффициенты

В Калькулятор добавляем следующие поля для расчета минимальных и максимальных коэффициентов:

Имя поля Метка поля Описание
 CoefMin Коэффициент|Минимум Положительные коэффициенты обнуляются, отрицательные
остаются без изменений
 CoefMax Коэффициент|Максимум Положительные коэффициенты остаются без изменений,
отрицательные вычитаются из входных коэффициентов
 Добавление суммы непустых коэффициентов

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

Слиянием соединяем рассчитанные минимальные коэффициенты и входной набор Подмодели. В Мастере настройки узла выбираем "Левое соединение" и связываем поля "Метки входных полей".

 Расчет скорингового балла

В Калькулятор добавляем следующие выражения для расчета скорингового балла:

Имя поля Метка поля Описание
 CoefResult Коэффициент
(Результат)
Расчет результирующего коэффициента
 Factor Множитель Рассчитывается по формуле: Шаг удвоения шансов / Ln(2)
 Score Балл Для константы рассчитывается по формуле Референсная точка -
Множитель
Ln(50) + Множитель Коэффициент (результат), для
остальных полей по формуле Множитель Коэффициент (результат)*

Анализ результатов

Для представления результатов используются следующие визуализаторы:

Для анализа статистической значимости как всей модели, так и отдельных ее компонент, воспользуемся Отчетом по регрессии. В качестве порога значимости возьмем 5%, это позволит уменьшить риск ошибки второго рода. Значимость всей модели P < 0,00001, значимость большинства коэффициентов регрессии менее 0,05. В целом делаем вывод, что модель статистически значима, и ее можно использовать для прогнозов.

Показатели регрессии.
Рисунок 20. Показатели регрессии.
Отчёт по регрессии.
Рисунок 21. Отчёт по регрессии.

ROC-кривая имеет площадь под кривой 0,7946, которую можно интерпретировать как вероятность того, что в 79,46% случаях удастся разделить классы. У полученной модели хорошая предсказательная сила.

ROC-кривая.
Рисунок 22. ROC-кривая.

Другим способом оценить качество классификации является PR-кривая, диаграмму которой можно выбрать в левом списке диаграмм. Если выборка идеально разделима, то кривая пройдет через точку (1, 1). Чем больше площадь под кривой, тем лучше.

PR-кривая.
Рисунок 23. PR-кривая.

Переключим график на кумулятивную Lift-кривую. Для этого в списке выбора диаграмм (слева) выберем "% распознанных событий". Диагональная линия отражает работу бесполезного классификатора, то есть случаи, когда списки получателей рассылки формируются случайным образом. График кривой, соответствующей нашей модели, проходит достаточно высоко, что говорит о хорошем качестве прогнозирования отклика клиента. Видим, что при объеме рассылки в 25% от всей базы мы получим около 55% откликов. Если бы мы проводили рассылку случайно, то для получения такого же отклика нам пришлось бы отправить письма примерно 55% клиентам. Разница в 30% и есть экономия, которую дает нам наша модель.

Lift-кривая.
Рисунок 24. Lift-кривая.

Результирующая таблица с рассчитанным скоринговым баллом для выбранных алгоритмом характеристик:

Таблица "Скоринговый балл".
Рисунок 25. Таблица "Скоринговый балл".

Таким образом, была построена модель прогнозирования вероятности отклика. Как ее можно применять? Применив ее к новым клиентам, получить упорядоченный по убыванию вероятности отклика список покупателей. Клиентам с высокими вероятностями и следует адресовать предложение.

Компоненты

Файлы

Скачать

results matching ""

    No results matching ""