ВВЕДЕНИЕ
Конверсия потенциальных клиентов – важный аспект бизнеса, особенно для компаний, которые занимаются приложениями и веб-сайтами. Выявление и прогнозирование потенциальных клиентов, которые могут стать платными клиентами, очень важно, поскольку эти люди вносят большой вклад в маржу прибыли компании. Коэффициент конверсии потенциальных клиентов около 11 % считается хорошим процентом, поэтому каждая компания хочет достичь этого и даже большего, и лучший способ сделать это — спрогнозировать это так, чтобы необходимые и соответствующие меры сделаны для того, чтобы они могли завершить процесс конвертации, чтобы продолжать получать прибыль для компании и бизнеса.
Для конвертации лида существуют различные процессы, один из идеальных процессов: лид узнает о приложении, лиды проверяют приложение, лиды узнают больше о приложении в другом месте, лиды регистрируются в приложении и, следовательно, лиды конвертируются. Во время этого процесса лид может остановиться в любой момент, поэтому важно уметь предсказывать, какие из них могут конвертироваться, чтобы позволить им успешно завершить процесс конвертации. Способность выявлять и нацеливать потенциальных клиентов, которые могут конвертировать, может быть разницей между прибыльным предприятием и неудачным.
В этом проекте примером использования была мобильная компания, пытающаяся улучшить конверсию лидов с помощью методов машинного обучения, и в этом блоге я расскажу о своем подходе к тому, чтобы помочь этой компании улучшить конверсию лидов. углубившись в технические детали того, как я построил и развернул систему в простом веб-приложении с потоковой подсветкой.
ИНСТРУМЕНТЫ И ТЕХНОЛОГИИ
Ниже приведены инструменты и технологии, используемые в этом проекте:
- Бэкэнд-разработка: Python
- Модели машинного обучения: случайный лес, логистическая регрессия, деревья решений, Xgboost, LightGBM.
- Внешний интерфейс: Streamlit
- Контейнеризация: Docker
- Отслеживание экспериментов: веса и отклонения (WandB)
- API: быстрый API
- Контроль версий: Git
- Тестирование: pytest
- CI/CD: действия Github
АНАЛИТИКА
Первым и самым важным было посмотреть на характеристики лидов, которые конвертировались.
Как видно из изображения выше, большинство потенциальных клиентов проживает в Соединенных Штатах, причем более 98 % потенциальных клиентов, но только менее 5 % из них конвертируются, по сравнению с Великобританией, на которую приходится менее 1 % всех приводит к большему количеству конверсий лидов: около 5,27% конверсий лидов, что говорит о том, что лиды, зарегистрированные в Великобритании, должны быть больше нацелены, поскольку они, как правило, конвертируются больше всего.
Как видно из изображения выше, Facebook является источником, из которого перенаправляется большинство лидов, причем почти половина всех лидов перенаправляется оттуда, но только 3,73% лидов конвертируются оттуда. Среднее перенаправление обеспечивает наибольшую конверсию потенциальных клиентов (6,76 %), хотя оттуда перенаправляется менее 1 % всех потенциальных клиентов, поэтому следует уделять больше внимания лидам, которые перенаправляются со среднего уровня.
На изображении выше видно, что телефон – это устройство, которое лиды используют для регистрации в приложении. Почти 94 % всех лидов регистрируются с его помощью, но конвертируются только 4,43 % таких лидов. Компьютер имеет самый высокий коэффициент конверсии: около 6,69% всех потенциальных клиентов конвертируются, когда они использовали компьютер для регистрации, но только 5% всех потенциальных клиентов зарегистрировались с помощью компьютера, это может быть связано с тот факт, что лиды, использующие рабочий стол, имеют больший экран, чтобы смотреть на приложение и видеть все его функции, и в нем легче ориентироваться, например, нажатие ссылки в приложении может просто перенаправить на новую вкладку, оставив другую вкладку открытой , тогда как в телефоне старая вкладка, вероятно, будет закрыта. Поэтому лучшим вариантом здесь является таргетинг потенциальных клиентов с настольных компьютеров, так как они с большей вероятностью совершат конверсию.
ПОСТРОЕНИЕ МОДЕЛИ И ОЦЕНКА
При построении моделей использовались 5 алгоритмов: Случайный лес, Логистическая регрессия, Деревья решений, Xgboost и LightGBM. Они были выбраны по следующим причинам:
- Случайный лес: случайный лес был выбран для бинарной классификации несбалансированных данных, потому что это ансамблевая модель, которая может обрабатывать многомерные данные, она может захватывать сложные взаимодействия и успешно решить проблему дисбаланса классов в этом проекте.
- Логистическая регрессия: из-за ее эффективности вычислений, интерпретируемости и способности обрабатывать линейные отношения. strong> в данных, логистическая регрессия хорошо подходит для этого проекта, который представляет собой бинарную классификацию с несбалансированными данными.
- Деревья решений. Деревья решений выбираются для бинарной классификации несбалансированных данных, поскольку они могут обрабатывать как числовые, так и категориальные признаки, фиксировать нелинейные отношения и эффективно устранять дисбаланс классов.
- XGBoost: XGBoost также был выбран из-за его оптимизированного подхода к повышению градиента, сильных методов регуляризации и способности обрабатывать эффективно дисбаланс классов, предотвращая переоснащение.
- LightGBM: LightGBM также выбран из-за его скорости, эффективности и способности обрабатывать большие наборы данных. Его стратегия роста дерева по листу и объединение функций на основе гистограмм делают его подходящим для устранения дисбаланса классов в данных.
Окончательные характеристики
Это последние функции, используемые для построения прогностической модели:
- Время дня, когда пользователь взаимодействует с приложением. Эта функция фиксирует конкретное время дня, когда пользователи взаимодействуют с приложением, что может дать представление об их моделях поведения и предпочтениях.
- Лид в приложении перенаправляется из: эта функция отслеживает источник или канал, по которому лиды приходят в приложение. Это помогает понять эффективность различных каналов социального маркетинга.
- Страна происхождения. Эта функция фиксирует географическое положение потенциальных клиентов, что может быть полезно для разработки маркетинговых стратегий, понимания региональных предпочтений и локализации кампаний.
- Будний день или выходной. Эта функция классифицирует потенциальных клиентов в зависимости от того, происходит ли их взаимодействие в будний или выходной день, что позволяет анализировать, отличаются ли коэффициенты конверсии в зависимости от дня недели.
- Время между первым открытием лидом приложения и его возвращением. Эта функция измеряет временной интервал между первым взаимодействием лида с приложением и его последующими посещениями. Он дает представление о вовлеченности пользователей и помогает выявить активных или потенциальных потенциальных клиентов.
- Устройство, которое использует лид: эта функция фиксирует тип устройства (например, мобильное, планшет, компьютер), которое лид использует для доступа к приложению. Это может помочь оптимизировать взаимодействие с пользователем и адаптировать маркетинговые кампании для различных типов устройств.
Отслеживание эксперимента
Для отслеживания экспериментов использовались Веса и смещения. Отслеживание экспериментов важно для отслеживания всех экспериментов, которые я провел, записи различных параметров и конфигураций, которые я пробовал, и сравнения производительности различных моделей. Я провожу много экспериментов, поэтому наличие этого средства отслеживания экспериментов жизненно необходимо, чтобы отслеживать, что я делал, и знать, что сработало, а что нет. В конечном итоге это помогает повысить эффективность, производительность и точность при разработке этих моделей машинного обучения.
На рисунке выше показаны эксперименты с построенными моделями, отслеживаемыми wandb, и наиболее эффективной моделью был алгоритм случайного леса, поэтому эта модель была выбрана для дальнейшей разработки.
Оценка модели
Производительность модели оценивалась по 5 метрикам: точность (что не является хорошей метрикой для несбалансированных наборов данных), полнота, точность, f1score и roc_auc. В целом модель работает не так хорошо, достигая оценки около 60 % по показателям, поскольку трудно предсказать потенциальных клиентов, которые будут конвертироваться, поскольку лиды имеют очень уникальные характеристики, но она пытается предсказывать их. Отзыв является самым важным показателем здесь, так как мы заинтересованы в прогнозировании всех лидов, которые конвертируются, даже если это означает, что несколько лидов, которые не конвертировались, прогнозируются как конвертированные, поэтому здесь есть еще несколько ложных плюсы приемлемы. Кривая Roc с показателем AUC показана ниже.
Главное здесь — свести к минимуму ложноотрицательные результаты, лиды, которые конвертировались, но, по прогнозам, не конвертировались, так как большое количество ложноотрицательных результатов означало бы упущение ключевых лидов, которые потенциально могут принести прибыль компании.
Важность функции
У каждого лида разные характеристики: местонахождение, используемое устройство, время регистрации и т. д. Тем не менее, существует закономерность, согласно которой лиды, которые совершили конверсию, или лиды, которые не приняли, поэтому при составлении прогнозов модель определили, что некоторые из функций были более важными, чем другие в прогнозировании того, будут ли лиды конвертироваться или нет, ниже мы можем увидеть важность функций.
Наиболее важной характеристикой в прогнозировании конверсии потенциальных клиентов является то, что лиды посетили приложение дважды в один и тот же день, что имеет смысл, поскольку эти лиды проявляют наибольшую заинтересованность в приложении. Как правило, продолжительность времени между регистрацией и подпиской является наиболее важной для прогнозирования конверсионных лидов.
Страна, в которой находится лид, кажется не очень отличительной чертой, поскольку ни одна страна не входит в топ-15 важных характеристик, но все же важно прогнозировать конверсию лидов. Наименее важной особенностью является то, что лид использует телевизионную приставку для доступа к приложению, поскольку это устаревшее устройство.
CI/CD И ТЕСТИРОВАНИЕ
GitHub Actions, мой любимый инструмент CI/CD, использовался здесь для автоматизации сборки, тестирования и выпуска. Для этого проекта был построен очень простой конвейер, который просто устанавливает зависимости, запускает flake8, чтобы убедиться, что код читаем и соответствует стандартам, и запускает тестирование, чтобы убедиться, что приложение надежно и не сломается при развертывании.
Pytest, который я предпочитаю, использовался для создания и запуска модульных тестов, чтобы убедиться, что приложение ведет себя так, как я от него ожидаю. Были написаны очень простые тесты, такие как:
- Тест, чтобы проверить, нет ли нулевых значений
- Тест, чтобы проверить, сбалансированы ли данные
- Тест, чтобы проверить, имеют ли данные обучения и тестирования одинаковое количество записей для обеих функций и цели.
- Тест, чтобы проверить, имеют ли прогнозы и данные тестирования одинаковое количество записей.
РАЗВЕРТЫВАНИЕ МОДЕЛИ
Fast API использовался для создания надежного и масштабируемого API для обслуживания прогностической модели, которая использует обученную модель и выводит прогноз, а streamlit использовался в качестве внешнего интерфейса. , чтобы отображать результаты в удобном пользовательском интерфейсе, который руководители компаний могут использовать для доступа к своим потенциальным клиентам.
Все приложение было помещено в контейнер с помощью docker, поэтому мы можем гарантировать его стабильную работу в любой среде, независимо от базовой системы. Компоновка Docker также использовалась для определения различных служб, необходимых для приложения, таких как FastAPI и Streamlit, и для запуска их всех вместе в одной среде, поскольку это позволяет легко управлять и масштабировать услуги по мере необходимости.
Как данные собираются от пользователей для оценки в реальном времени
Для сбора пользовательских данных для прогнозирования в реальном времени с помощью моделей машинного обучения используются следующие методы:
- Отслеживайте действия пользователей, фиксируя местное время на их устройствах.
- Отслеживайте источник перехода, чтобы определить, как пользователи приходят в приложение.
- Извлечь информацию о стране из их IP-адреса
- Рассчитайте, происходят ли взаимодействия в будние или выходные дни, используя временные метки.
- Сохраняйте и анализируйте разницу во времени между первым сеансом пользователя в приложении и последующими посещениями или преобразованным временем.
- Получение данных, связанных с устройством, таких как тип устройства и операционная система, с помощью строк пользовательского агента.
Эти данные получаются от каждого пользователя, когда они взаимодействуют с приложением, и данные проходят через конвейер очистки и разработки функций в пригодном для использования формате и передаются в веб-приложение (что будет показано в следующем разделе) для прогнозирования в реальном времени, чтобы помочь понять, какие пользователи с большей вероятностью превратятся в клиентов.
Демонстрация веб-приложения
Ниже приведена демонстрация того, как работает приложение,
Итак, как вы можете видеть из простой демонстрации выше, на основе действий пользователя в приложении модель может предсказать, будет ли этот лид конвертироваться или нет, поэтому на основе этого будут предприняты рекомендуемые действия.
Веб-приложение доступно только для мобильной компании, а не для пользователей, так как в идеале данные заполняются автоматически, как описано в предыдущем разделе, но здесь я сделал выбор, чтобы мы могли имитировать данные пользователя. захватываются, чтобы руководители компаний могли принимать взвешенные решения.
Рекомендации из прогнозов
Когда прогнозируется, что лид конвертируется, крайне важно извлечь выгоду из его потенциала.
- Во-первых, создавайте персонализированные сообщения, которые непосредственно отвечают их интересам и потребностям. Адаптация ваших коммуникационных и маркетинговых усилий может значительно увеличить шансы на конверсию.
- Во-вторых, предпримите активные шаги, предусмотрев своевременные последующие действия. Это может включать в себя отправку целевых электронных писем, предложение дополнительных ресурсов или демонстраций и предоставление стимулов для поощрения желаемого действия.
- В-третьих, убедитесь, что ваша команда по продажам знает об этих лидах с высокой конверсией, чтобы они могли расставить приоритеты в своих усилиях по охвату и уделять индивидуальное внимание.
С другой стороны, когда прогнозируется, что лид не конвертируется, важно использовать эффективные стратегии повторного вовлечения.
- Начните с реализации целевых кампаний по повторному вовлечению, таких как персонализированные электронные письма, предложения или соответствующий контент, чтобы возродить их интерес.
- Затем сосредоточьтесь на взращивании лидов, поместив неконвертирующих лидов в рабочий процесс взращивания. Предоставьте им ценную информацию, образовательный контент и обновления, чтобы они оставались в поле зрения и со временем укрепляли доверие.
- Наконец, соберите отзывы от лидов, не совершивших конверсию, чтобы понять причины их неконверсии, и используйте эти отзывы для информирования будущих оптимизаций.
Дополнительные функции, чтобы сделать прогноз более надежным
Определенная информация о пользователе может быть добавлена, чтобы сделать прогнозы более надежными и лучше прогнозировать конверсию лидов. Эти дополнительные функции могут даже повысить точность и, следовательно, превратить больше лидов в потенциальных клиентов.
Вот некоторые из этих особенностей:
- Предыдущие взаимодействия. Отслеживание и анализ прошлых взаимодействий потенциальных клиентов, таких как предыдущие покупки, запросы или взаимодействие с определенным контентом, может указывать на уровень их интереса и склонность к конверсии.
- Показатели вовлеченности. Мониторинг показателей вовлеченности пользователей, таких как количество сеансов, время, проведенное на определенных страницах, рейтинг кликов или взаимодействие с определенными функциями, может помочь выявить вовлеченные лиды, которые с большей вероятностью конвертируются.
ЗАКЛЮЧЕНИЕ
Прогнозирование лидов, которые могут конвертироваться, имеет первостепенное значение для компаний, в том числе и для этой мобильной компании. Многие лиды начинают процесс и терпят неудачу, поэтому способность идентифицировать такие многообещающие лиды, которые имеют высокую вероятность стать платными клиентами, имеет решающее значение, поэтому им можно предоставить определенные стимулы, чтобы помочь им завершить процесс. Мысли людей могут измениться в любое время, но благодаря вмешательству компании, полученной на основе знаний, полученных в результате этого проекта, знание тех, кто, вероятно, будет конвертироваться, может стать платными клиентами, чтобы поддерживать бизнес на плаву и получать прибыль компании.
При разработке этого приложения были соблюдены некоторые ключевые принципы MLOPS, а также проведен некоторый анализ для дальнейшего понимания данных, что помогло построить более надежную прогностическую модель. Это можно доработать, чтобы превратить в полезное приложение или интегрировать в существующую систему, чтобы извлечь выгоду, чтобы помочь сократить убытки в компании и увеличить прибыль. Инженеры могут следовать некоторым из этих принципов, чтобы начать создавать надежные и полезные приложения.
Код, используемый в этом проекте, можно найти здесь → https://github.com/JoAmps/Lead_conversion_prediction_for_a_mobile_app_company