Унификация работы с данными в рамках программ лояльности
информацию, содержащуюся в анкетах лояльности. Но не тут-то было!
Как сделать предоставленные в спешке клиентами данные пригодными
к обработке, рассказывает наш постоянный автор Олег Брагинский,
основатель «Школы траблшутеров» и директор «Бюро Брагинского».
Олег Брагинский, основатель «Школы траблшутеров» и директор «Бюро Брагинского» |
Казалось бы, что может быть проще – собирай, храни и используй клиентскую информацию, содержащуюся в анкетах лояльности. Но не тут-то было! Как сделать предоставленные в спешке клиентами данные пригодными к обработке, рассказывает наш постоянный автор Олег Брагинский, основатель «Школы траблшутеров» и директор «Бюро Брагинского».
Бумажные бланки и интернет-анкеты заполняют небрежно: заносят данные не в те поля, злоупотребляют сокращениями, тестируют «дуракоустойчивость» системы. Использование интернет-браузеров на рабочих компьютерах сотрудников с включенной функцией автозаполнения катастрофически множит ошибки, формируя равновесные распределения «Наталья» и «Наталия», «Жукова Маршала» и «Маршала Жукова».
Проблем добавляют сотрудники, присваивающие себе несколько идентификаторов лояльности, чтобы не быть пойманными на аномальном росте бонусов, баллов и скидок. Клиенты тоже не стесняются требовать очередную карту взамен забытой дома, что в 13% случаев оказывается ложью. Передача карт друзьям и знакомым некритична с точки зрения предоставления скидки (для этого они и предназначены), но разрушает модели пользовательского поведения.
Обучение, контроль и наказание персонала не спасают ситуацию – данные серьезно загрязнены. Выход на будущее – внедрение интеллектуальных справочников быстрого ввода, выравнивание прошлого – чистка, доопределение и дедубликация записей. Эта работа, выполнение которой потребует в том числе ручного труда, займет уйму времени и иногда будет казаться бессмысленной, как следствие – возникнут порывы удалить недочищенную часть базы. Удержитесь от резких движений и будете щедро вознаграждены точностью предсказания построенных моделей.
Типичные погрешности столбцов полей в 0,2–0,6% кажутся незначительными, но приводят к неточности 4,5–11,2% строк базы, что делает разработку моделей бесперспективной. Запомните правило «грязного квадрата»: ошибки в x% описаний объектов превращаются в x2 % неточности прогнозов. Пятипроцентная неточность означает ошибку в каждом четвертом случае, а 10%-ная погрешность – полный абсурд предсказаний, напрочь оторванный от жизни.
Построение системы корректирующих фильтров позволяет не только улучшить прошлое, но и не пропускать грязевой сель в настоящее |
Передача карт друзьям и знакомым некритична с точки зрения предоставления скидки (для этого они и предназначены), но разрушает модели пользовательского поведения |
Построение системы корректирующих фильтров позволяет не только улучшить прошлое, но и не пропускать грязевой сель в настоящее. Рассмотрим несколько методик организации работы с данными в рамках программ лояльности. В статье приведены цифры, полученные по итогам исследования 27 баз данных в 5 странах за 12 лет, среди которых:
• 11 розничных сетей по продажам электроники;
• 5 ресторанных объединений;
• 4 продуктовых ритейлера;
• 3 страховые компании;
• 2 банка;
• оператор мобильной связи;
• конгломерат монобутиков.
Текстовые строки разбейте на атомы – минимальные неделимые компоненты. Нужно учитывать, что в строке «ФИО», предназначенной для внесения фамилии, имени и отчества, должна быть предусмотрена возможность написания двойных имен и пр.: Анна-Мария, Смирнова-Балацкая и даже Андреевна-Сергеевна – сам бы не поверил, если бы не увидел своими глазами. Для адресов места регистрации, проживания и работы количество атомов может превышать 50, в основном из-за сложносочиненных адресов со множеством владений, строений, корпусов и дробей.
Проверьте допустимость встречаемости символов – постройте маски для большинства полей, проверьте символы малых частот и их сочетаемости – биграммы, триграммы и квадрограммы. Сможете обнаружить ошибки или узнать много нового об имеющихся данных.
Определите максимальные и минимальные значения – постройте сводные таблицы, чтобы внимательно рассмотреть малые и большие показатели для чисел и длин текстовых строк и выявить аномальные, незначащие значения или «недописки». Особое внимание уделите датам – там скрываются горы необъяснимых ошибок.
Проведите оптимизацию длины полей, устраняя незначащие элементы:
• двойные пробелы, в начале и конце строки;
• пробелы, скобки и дефисы в номере телефона;
• задвоенные кавычки, дефисы и прочие повторяющиеся знаки.
Рассчитайте частотные коэффициенты
встречаемости отдельно для фамилии, имени, отчества:
• Ф-Ф – компонент фамилии в справочнике
фамилий;
• Ф-И – компонент фамилии в справочнике имен;
• Ф-О – компонент фамилии в справочнике
отчеств;
• И-И – компонент имени в справочнике
имен;
• И-Ф – компонент имени в справочнике фамилий;
• И-О – компонент имени в справочнике отчеств;
• О-О – компонент отчества в справочнике
отчеств;
• О-Ф – компонент отчества в справочнике
фамилий;
• О-И – компонент отчества в справочнике
имен.
Выполните необходимые перестановки, если элементы занимают «не свои» столбцы.
Аналогичную работу следует провести с регионами, городами, типами улиц, улицами, чтобы «тупик Остапа Бендера» и «Остапа Бендера тупик» перестали быть различными географическими объектами. Похожая участь постигнет и многословные названия юридических лиц: «Предприятие с иностранными инвестициями – Торговый дом “АБВ”» и «Торговый дом предприятия с иностранными инвестициями ”АБВ”».
Откорректируйте поля в пределах смысловых групп – коды стационарных телефонов должны соответствовать регионам, почтовые индексы – городам, а типы улиц одинакового написания корреспондироваться в пределах населенных пунктов.
Введите и соблюдайте сокращения – фразу «Общество с ограниченной ответственностью» следует выносить в «Форму собственности» и заменять на «ООО», «Воинская часть No 12345» – разбить на столбцы «ВЧ» и «12345». Так же действуем с формулировками «Садовое общество», «Лодочная пристань» и «Дачно-строительный кооператив»: «СС», «ЛП» и «ДСК».
Рассчитайте расстояние Левенштейна для текстовых строк с низкими коэффициентами встречаемости – минимальное количество операций вставки или удаления или замены символа на другой. Сравнивая редкие строки с частыми, найдите расстояния 1 и 2: вероятны ошибки, опечатки, пропуск или смешение порядка следования символов при наборе, которые поддаются автоматизированной коррекции.
Отработайте типовые окончания текстовых строк – «-вич» и «-вна» обычно бывают окончаниями, определяющими пол и тип строки «Отчество». Завершающие символы «-адзе», «-ий», «-ко» часто характеризуют фамилии и национальность. Имена и фамилии, заканчивающиеся на гласные, преимущественно принадлежат женщинам.
Введите расчетные столбцы. Многим фамилиям, именам и отчествам можно сопоставить пол:
• 0 – мужской
• 1 – женский
• 5 – средний (например, украинские фамилии на «-ко»)
• 8 – неопределенный для неславянских.
Рисунок 1. Тренд снижения количества записей базы данных при очистке |
Таблица 1. Прогресс снижения количества записей базы данных при очистке |
Проголосуйте расчетными столбцами. Аббревиатура «1ж-2м» означает, что пол, вероятно, мужской, так как имеем два мужских компонента, а «1м-2ж» – женский. Прочие случаи не подлежат автоматической коррекции и исследуются в ручном режиме.
Проведите орфографическую коррекцию. Ошибки в написании слов обернутся плохой сворачиваемостью и появлением редких элементов реляционных справочников. Используем MS Word и не морщимся. Да, нетехнологично. Знаете способ лучше? С удовольствием прочту вашу статью в этом же журнале.
Займитесь доопределением пустот по однозначным полям. «Мобильный телефон» и «Электронная почта» с любыми двумя полями из ФИО удачно определяют третье: по пропущенному имени или отчеству при наличии фамилии и мобильного телефона или отчества и email легко доопределить недостающее поле. Инициалы в этом случае тоже можно считать пустотой, причем обладающей функцией косвенной проверки. Почему не прямой? «Шура» = «Александр», а «Лана» = «Светлана».
Кстати, чуть не забыл, все коррекции текстовых строк делятся на два типа: замещающие, когда вы подменяете старую строку «корректной», и внутренние, когда клиенту вы пишете «Шура», но для скорингов используете полную форму имени.
После доопределения приходит час свертки – дедубликации строк с равными показателями значащих полей. Похожие строки объединяются в группы дубликатов, которым в новом столбце проставляется идентификатор с самой младшей датой. Так сможете привязать несколько карт лояльности к одному человеку с момента выдачи первой, что поможет корректно строить графу совершенных покупок.
Взаимопроверяем молекулы – разные ФИО по одному адресу и наоборот часто принадлежат семье или родственникам, что позволяет организовать карты в домохозяйство или откорректировать написание атомов.
Парсим примечания – строки произвольного ввода хоть и являются атавизмом, помогают получить альтернативные адреса и телефоны, ФИО родственников и прислуги, рабочие и домашние email’ы, добавочные номера офисных АТС.
Выделяем субатомы – email содержит часть строки до символа @, которая обычно уникальна даже для больших баз, а вот домены и субдомены вполне корректируемы по словарям. Аналогично 2–4 и 5–7 символы мобильных телефонов сохраняют префикс мобильного оператора и серию, по которой возможно узнать дату выдачи идентификатора.
Рисунок 2. Сравнение компонентной чистоты начальной базы и после коррекции |
Рисунок 3. Сравнение уникальности начальной базы и после коррекции |
Рисунок 4. Динамика изменения максимальной длины полей начальной базы и после коррекции |
Рисунок 5. Динамика изменения суммарной длины полей начальной базы и после коррекции |
Проверяем коэффициенты доверия – малые значения произведений после перемножения частот встречаемости атомов «ФИО» и «Адреса» указывают на потенциальные ошибки и редкие случаи. Значения, находящиеся в верхних 99% цифрового ряда, вполне пригодны для дальнейшего анализа, а вот ниже – первые кандидаты на удаление из-за недоверия к странным сочетаниям значений атомов.
Не буду утомлять вас прочими методами работы с грязными данными, лишь предостерегу:
• описывайте и сохраняйте скрипты;
• создавайте копии базы перед массовыми
операциями;
• сначала тестируйте выборки, потом производите обновления;
• предусмотрите возможность повторить
процесс с самого начала.
Отслеживайте процесс и прогресс, чтобы остановиться, когда темп борьбы за чистоту данных начнет спадать (рис. 1).
Приведенный на рис. 1 и в табл. 1 пример отражает сворачивание базы в 52,6 млн записей до 41,7 млн и улучшение качества базы: количество записей на уникальный номер телефона лояльного клиента уменьшилось с 3,16 до 2,49 с одновременным улучшением качества информации.
Выводы по оценке прогресса
1. Большое продвижение по уникальности записей произошло в процессе парсинга
и доопределения адресов. В адресе возникновение ошибки имеет высокую вероятность
и значительное разнообразие: грамматика,
пунктуация, сокращения, порядок следования атомов.
2. Чистка ФИО и определение формы собственности компаний оказались самыми короткими по времени этапами в обработке
базы. В совокупности они дали существенное
приращение по качеству данных.
Проведите сравнение компонентной чистоты начальной базы и после коррекции, чтобы
отследить динамику дооопределения полей
(рис. 2 и рис. 3).
Выводы по динамике уникальности
1. Увеличение уникальности показателей
связано с коррекцией значений по группам
смысловых полей. Наибольший рост уникальности значений: «Город» – +34,2% (на 12,6 тыс.
шт.), «Квартира» – +12,0% (на 3,2 тыс. шт.),
«Улица» – +4,0% (на 14,3 тыс. шт.), «Фамилия» – +0,4% (на 18,2 тыс. шт.).
2. Уменьшение уникальности некоторых
показателей произошло вследствие исправления ошибок в написании. Каждая ошибка в написании – появление уникального
значения. Уменьшение уникальности происходит в полях типизируемых значений:
«Имя», «Отчество», «Область», «Район»,
«Тип города».
3. Наибольшее уменьшение уникальности (исправление нетипичных значений)
сделано в значениях «Область»: –98,2% (на
1,5 тыс. шт.), «Адрес»: –94,1% (на 2,4 млн
шт.), «Район»: –87,9% (на 7,0 тыс. шт.), «Отчество»: –8,2% (на 8,6 тыс. шт.), «Имя»: –4,4%
(на 2,6 тыс. шт.).
4. Почти по всем показателям из группы
«Адрес» произошло уменьшение пустотности после обработки кроме собственно поля
«Адрес», в котором фиксируется его полная
строка. Изменения произошли в процессе
распарсивания и корректировки ошибочных
значений атомов.
5. Удаление пустотности эффективно происходит по параметрам, дополнение которых
формулируется алгоритмически и автоматизируется программными средствами.
6. Наибольшее уменьшение пустотности: «Код города»: –52,5% (на 0,7 млн записей), Тип улицы: –27,4% (на 0,1 млн записей),
«Квартира»: –26,6% (на 0,2 млн записей).
Сравните максимальные длины полей начальной базы и после коррекции, чтобы отследить динамику дооопределения (рис. 4).
Выводы по динамике максимальной длины
полей
1. Длина полей измерялась для данных, записываемых текстовыми строками. Сокращение полей допускалось, если не приводило
к содержательной потере данных.
2. В среднем удалось сократить длину текстовых полей на 45%.
3. По количеству символов наиболее сокращенными оказались: «Адрес» – на 97 символов, «Фамилия» – на 50, «Улица» – на 47 и «Город» – на 27 символов.
4. Больше чем вполовину удалось сократить: «Адрес»: на 80,8%, «Квартира»: на 72,2%,
«Дом»: на 66,7%, «Корпус»: на 54,5%, «Улица»:
на 54,0% и «Имя»: на 50,0%.
Оцените наполненность базы, просуммировав длины полей (рис. 5).
Выводы по суммарной длине полей
1. Суммарная длина полей характеризирует длину значений всей базы и непосредственно связана с ее размером.
2. Суммарную длину полей удалось сократить на 41,6% без потерь в информационной
содержательности данных.
3. Больше всего суммарная длина сокращена для полей: «Отчество»: –45,6%
(на 199,4 млрд символов), «Имя»: –45,4%
(на 126,6 млрд символов) и ИНН: –43,1%
(на 177,2 млрд символов).
4. Меньше остальных удалось ужать
«Адрес»: –0,8% (на 0,1 млрд символов).
Дальнейшая работа с данными в рамках программ лояльности описана в сотнях учебников и статей, тут трудно блеснуть оригинальными мыслями. Привыкните сами и приучите аналитиков – прежде чем использовать информацию и строить прогнозы, надо потратить достаточное время на достижение приемлемой чистоты данных. Удачи вам в борьбе за приверженность потребителей!