Joyless: поиск причин оттока пользователей для свадеб Joy

Эрин Эдкинс Людерт — научный сотрудник Insight Data Science. До прихода в Insight она получила докторскую степень в Гавайском университете по экспериментальной физике элементарных частиц, где занималась поиском темной материи в качестве участника коллаборации DarkSide.

Joy — это бесплатный онлайн-сервис, который позволяет парам создать собственный свадебный сайт и мобильное приложение. Вы можете использовать сайт для приглашений или заказать печатные приглашения, соответствующие теме вашей страницы. Они также позволяют гостям загружать фотографии со дня свадьбы, чтобы другие могли ими насладиться. Это довольно новая компания, но у них такая крутая платформа, что они быстро расширились. Как научный сотрудник Insight Data Science, у меня была возможность работать с Joy, чтобы попытаться определить причины оттока пользователей или, другими словами, что заставляет пользователей, которые изначально опубликовали веб-сайт Joy для своей свадьбы, в конечном итоге не использовать его. Так как это была новая компания, я был одним из первых, кто смог взглянуть на их данные, а их было много! Каждый месяц Joy регистрирует десятки миллионов пользовательских событий. Первой проблемой было достаточное понимание данных, чтобы написать правильный SQL-запрос для получения необходимой информации. Следующим шагом было определить четкое определение того, что означает отток клиентов для этого вида бизнеса.

Определение оттока: когда пользователи перестают взаимодействовать с Joy?

Я начал с того, что ограничил свои данные свадебными веб-сайтами, которые действительно были опубликованы парой. Затем я посмотрел на распределение времени последнего взаимодействия пары с Джой относительно даты их свадьбы. Поскольку у свадеб есть определенная дата, которая приходит и уходит, для свадебной компании не существует такого понятия, как «пожизненный пользователь» — обычно вы ожидаете, что люди перестанут взаимодействовать с Джой в день свадьбы. Кроме того, парам, которые используют Joy для своих свадебных приглашений, может не потребоваться возвращаться на сайт по истечении периода приглашения. Поскольку приглашения обычно рассылаются за 4 месяца до свадьбы, эти пары перестают общаться с Джой за 2 или 3 месяца до даты свадьбы. Эта картина дополнительно усложняется тем, что, несмотря на стандартные сроки подготовки к свадьбе, на самом деле люди планируют свою свадьбу по своим собственным графикам: они могут заказать кейтеринг за два года вперед или провести церемонию всего через месяц после. помолвка. Из-за этого определение оттока с точки зрения того, за сколько времени до даты свадьбы они перестали использовать Joy, не было хорошей метрикой.

Однако, когда я посмотрел на количество дней входа в систему, которое было у пар на сайте, я заметил, что была группа людей, у которых был только один или два дня входа в систему. Это означало, что эти пары создали и опубликовали свои веб-сайты, но затем перестали их использовать — очевидно, их следует классифицировать как отчужденные. С другой стороны, те пары, которые были очень активны на сайте до и даже после дня свадьбы, обычно имели 15 или более дней входа в систему. Затем я решил использовать количество дней входа в систему в качестве показателя оттока и сравнить поведение тех пар, у которых менее 3 дней входа в систему, с теми парами, которые активно вовлечены, у которых их было более 15.

Отточенные против сильно вовлеченных: последние посещенные страницы

Следующим, что я сделал, было просмотр страниц на сайте Joy, которые посещали обе эти группы. Я делал это несколькими способами, например, просматривая количество посещений каждой страницы и какие страницы были самыми последними, на которых пользователи просматривали до прекращения использования Joy. Я также просмотрел последние 5 страниц, которые посетили пользователи, в том порядке, в котором они их посещали. Отсюда начала вырисовываться картина поведения пользователей, и я начал замечать четкую разницу между высокоактивными и уволенными группами.

Активно вовлеченные пользователи обычно заканчивали взаимодействие с Джой просмотром или редактированием своего списка гостей, что вполне логично. Однако ушедшие пользователи тратили большую часть своего времени на создание своего веб-сайта, редактирование своего сайта и просмотр домашней страницы.

Помимо того, что я смотрел, какие страницы посещали пользователи, я также смотрел, какие функции и функции сайта они использовали. Одна функция, в частности, никогда не использовалась почти 70% тех, кто позже уволился, что позволяет предположить, что они, возможно, не знали, что она была доступна.

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

Моделирование оттока: разработка функций

Я начал с выбора последних пяти страниц, посещенных каждым пользователем, в порядке, обратном порядку их посещения (т. е. последняя посещенная страница была помечена 1, предпоследняя страница была помечена 2 и т. д.). Получив эти данные, я исключил те страницы, на которых было очень мало записей об ушедших пользователях, или, другими словами, с которыми непосредственно перед оттоком взаимодействовало менее 1% пользователей, которые позже ушли. Затем я исключил те страницы, на которых поведение ушедших и вовлеченных пользователей было практически одинаковым. Например, обе группы потратили время на свою страницу панели редактирования, которая является отправной точкой для других страниц и не сообщает нам ничего нового. Наконец, я добавил информацию о взаимодействии пользователей с функцией сайта, которую я определил ранее как связанную с оттоком.

Моделирование оттока с помощью Random Forest

Теперь, когда у меня был набор функций, я использовал его для обучения классификатора случайного леса. Одна проблема с применением классификатора случайного леса к этим данным заключается в том, что два класса, взбалтываемые и занятые, несбалансированы. Причина, по которой несбалансированные данные — когда один класс имеет гораздо больше экземпляров, чем другой — вызывает беспокойство, можно понять, если подумать о другом случае несбалансированных классов: о тех, кто заболевает редким заболеванием, и о тех, кто не заболевает. Допустим, только 1% населения заразится этим заболеванием. Если вы хотите смоделировать, какие это будут люди, вы можете использовать классификатор, такой как случайный лес. В этом случае простой ввод ваших данных в алгоритм даст вам отличный результат: ваша модель точно маркирует население в 99% случаев. Довольно хорошо, правда? К сожалению, это та же самая точность, которой вы достигли бы, просто сказав, что никто не заразится этой болезнью — вы были бы правы в 99% случаев.

Есть несколько способов справиться с этим, но, поскольку в моем классе меньшинства было менее 10 000 экземпляров, я решил использовать избыточную выборку. Как следует из названия, избыточная выборка по существу добавляет членов в класс меньшинства либо путем случайной выборки таких экземпляров с заменой, либо путем создания синтетических экземпляров путем случайной выборки из характеристик класса меньшинства. Для своих данных я применил последний метод, используя Synthetic Minority Over-Sampling Technique или SMOTE. Подробнее о SMOTE можно прочитать здесь.

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

После обучения моей модели я использовал ее, чтобы предсказать отчужденный или вовлеченный статус группы пользователей Joy. Из всех людей в выборке модель правильно классифицировала 98,7% как ушедших или вовлеченных, при этом более 99% ушедших пользователей были правильно классифицированы.

Результат подтвердил мои выводы о функциях Joy, которые приводили к оттоку пользователей. Основываясь на этом результате, я смог порекомендовать Джой, что они могут изменить, чтобы улучшить свой сайт и увеличить количество пользователей в высокоактивной группе.