Автор: Смаглий Глеб Дмитриевич

Рубрика: Технические науки

Опубликовано в Молодой учёный №13 (117) июль-1 2016 г.

Дата публикации: 29.06.2016

Статья просмотрена: 24 раза

Библиографическое описание:

Смаглий Г. Д. Предсказание уходов пользователей сервиса с помощью машинного обучения // Молодой ученый. — 2016. — №13. — С. 213-215.



SaaS (от англ. site as a service — сайт как сервис) — способ предоставления программного обеспечения пользователю с помощью сайта в сети интернет. В этом случае пользователь не должен устанавливать себе никакого программного обеспечение, а возможный обмен между различными пользователями данного сервиса становится очень простым. В качестве типичных представителей данного способа предоставления программного обеспечения можно привести: онлайн-кинотеатры, социальные сети и другие часто используемые сервисы. При этом некоторые пользователи со временем теряют интерес к сервису или уходят по каким-либо иным причинам. Иногда данных пользователей можно удержать, предоставив им дополнительные преимущества, например, скидку на пользование платным продуктом. Таким образом, ранее предсказание ухода пользователя становится актуальной задачей и успешно решается с помощью алгоритмов машинного обучения, речь о которых и пойдет далее.

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

Возможные пути решения данной проблемы.

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

Задача предсказания уходов пользователей.

Задача предсказания уходов пользователей в ближайшее время представима в виде задачи классификации. Каждый пользователь является объектом и представляется в виде набора некоторых признаков. При этом пользователь относится к одному из двух классов 0 или 1, в зависимости от того, уйдет он в ближайшее время или нет. При этом для классификации можно использовать различные алгоритмы и трудно заранее сказать, какой из них будет эффективнее. Для этого исследуем следующие алгоритмы: метод опорных векторов, решающие деревья, случайный лес и библиотеку xgboost, реализующую бустинг деревьев с помощью оптимизации целевой функции градиентным спуском.

Исследование эффективности алгоритмов.

В качестве входных данных взят массив, представляющий собой заходы пользователей сайта Wild Apricot за последние 16 месяцев. В качестве выходных классов взяты следующие: 1, если пользователь уйдет в ближайшие два месяца, 0 — если этого не произойдет. Тестирование алгоритмов делится на два этапа: обучение на тренировочной выборке и тестирование алгоритма на сбалансированной тестовой выборке с построением матрицы ошибок (у которой в шапке указываются предсказанные классы, а в первом столбце — действительные, то есть, правильные), а также считается средняя точность алгоритма и доверительный интервал для точности. Всего проводится 10 тестирований. Выборка объектов для тестового набора происходит методом hold-out и каждый запуск перед обучением случайно откладывается 100 объектов класса 1 и 100 объекта класса 2 для последующего тестирования на них обученного алгоритма.

Метод опорных векторов.

Метод опорных векторов (англ. SVM, support vector machine) — семейство алгоритмов обучения с учителем (англ. supervised learning), которые используются для задач классификации и регрессии. Основная идея метода — перевод исходных векторов в пространство более высокой размерности и поиск разделяющей гиперплоскости с максимальным зазором в этом пространстве. Для анализа использовалась реализация алгоритма из пакета scikit learn для языка Python с параметрами по умолчанию:

from sklearn import svm

clf = svm.SVC()

При исследовании данного метода получена матрица ошибок, показанная в таблице 1.

Таблица 1

Матрица ошибок метода опорных векторов

0

1

0

992

8

1

675

325

А также средняя точность 0.65 и доверительный интервал (при доверительной вероятности 0.95) для точности — (0.64, 0.68). Такая низкая точность обуславливается, вероятной невозможностью линейно разделить данные классы.

Метод решающих деревьев.

Метод решающих деревьев — средство поддержки принятия решений, использующееся в статистике и анализе данных для прогнозных моделей. Структура дерева представляет собой «листья» и «ветки». На ребрах («ветках») дерева решения записаны атрибуты, от которых зависит целевая функция, в «листьях» записаны значения целевой функции, а в остальных узлах — атрибуты, по которым различаются случаи. Чтобы классифицировать новый случай, надо спуститься по дереву до листа и выдать соответствующее значение. Подобные деревья решений широко используются в интеллектуальном анализе данных. Для данной задачи использовались решающие деревья из пакета scikit learn с параметрами по умолчанию:

from sklearn import tree

clf = tree.DecisionTreeClassifier()

И полученная матрица ошибок представлено в таблице 2.

Таблица 2

Матрица ошибок метода решающих деревьев

0

1

0

975

25

1

548

452

А также средняя точность 0.71 и доверительный интервал (при доверительной вероятности 0.95) для точности — (0.69, 0.73). Как видно, точность уже возросла, потому что используется нелинейное разделение, однако все еще высока, что обуславливается проблемами переобучения решающих деревьев.

Метод случайного леса.

Метод случайного леса — алгоритм машинного обучения, предложенный Лео Брейманом и Адель Катлер, заключающийся в использовании комитета (ансамбля) решающих деревьев. Алгоритм сочетает в себе две основные идеи: метод бэггинга Бреймана, и метод случайных подпространств. Алгоритм применяется для задач классификации, регрессии и кластеризации. Его реализация также есть в пакете scikit learn, чем и воспользуемся, причем выберем количество деревьев в комитете равным 100, что оптимально для данной задачи:

from sklearn.ensemble import RandomForestClassifier

clf = RandomForestClassifier(n_estimators = 100)

Проведем эксперимент и построим матрицу ошибок. Она приведена в таблице 3.

Таблица 3

Матрица ошибок для метода случайного леса

0

1

0

978

22

1

489

511

Среднюю точность посчитаем из таблицы 3 и получим 0.74 и доверительный интервал (0.72, 0.76) — при доверительной вероятности 0.95. Точность, как видно, выше, чем у метода решающих деревьев, однако все еще низка из-за проблем с переобучением.

Метод градиентного бустинга деревьев.

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

Таблица 4

Матрица ошибок для метода градиентного бустинга

0

1

0

966

34

1

299

701

А также среднюю точность 0.83 при доверительном интервале с доверительной вероятностью 0.95, равным (0.82, 0.86). Как видно, результаты получились гораздо лучше, что обусловлено хорошей стойкостью алгоритма к переобучению в сочетании с возможностью нелинейного разделения классов.

Заключение.

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

Литература:

  1. Eric Matthes Python Crash Course: A Hands-On, Project-Based Introduction to Programming / Eric Matthes — No Starch Press, 2015. – 560 с.
  2. Christopher Bishop Pattern Recognition and Machine Learning (Information Science and Statistics) / Christopher Bishop — Springer, 2007. — 738 с.
Основные термины (генерируются автоматически): предсказания уходов пользователей, целевой функции, Метод опорных векторов, доверительный интервал, градиентного бустинга деревьев, Метод градиентного бустинга, from sklearn import, scikit learn, Метод случайного леса, Задача предсказания уходов, пакета scikit learn, машинного обучения, оптимизации целевой функции, предоставления программного обеспечения, доверительной вероятности, матрицу ошибок, матрица ошибок, средняя точность, решающие деревья, метод опорных векторов.

Обсуждение

Социальные комментарии Cackle
Задать вопрос