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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

После описанных выше шагов следует перейти к обучению модели и оценке результатов на тестовой выборке (Рисунок 57). В качестве ключевой метрики будет использован пользовательский показатель Cumulative Lift - метрика, демонстрирующая, во сколько раз концентрация целевых событий в первых 10 перцентилях выборки больше концентрации во всей генеральной совокупности. С точки зрения бизнеса, удовлетворительным будет являться значение показателя, равное 3,5 (то есть концентрация в первых 10% в 3,5 раза выше концентрации во всей генеральной совокупности.

Для расчета Cumulative Lift и настройки модели по данной метрике необходимо разработать пользовательскую функцию (Рисунок 57):

Рисунок 57 Пользовательская функция для расчета Cumulative Lift

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

Рисунок 58 Цикл для подбора параметров модели

Скрипт подбирает следующие параметры для модели:

· Max_depth - глубина деревьев;

· Eta - доля ошибки на построенной композиции алгоритмов, которую каждый следующий алгоритм.

· Subsample - доля строк от общего количества тренировочной выборки, которая участвует в построении нового дерева.

· Colsample_bytree - доля предикторов, хранящихся в тренировочной выборке, которая участвует в обучении нового решающего дерева.

· Tree (i) - количество решающих деревьев в композиции [40, с. 257-262].

После прогона скрипта были определены следующие параметры:

· Max_depth = 3;

· Eta = 0,06;

· Subsample = 0,5;

· Colsample_bytree = 0,5;

· Tree (i) = 160

После подбора параметров производится построение предиктивной модели (Рисунок 59):

Рисунок 59 Построение предиктивной модели

В результате тестирования модели, на тестовой выборке получили Cumulative Lift = 3,5106 (Рисунок 60):

Рисунок 60 Расчет Cumulative lift

Такое значение показателя является удовлетворительным для достижения бизнес-целей телекоммуникационного оператора.

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

1. Выбрать оптимальный алгоритм для решения задачи;

2. Подобрать релевантное программное обеспечение для работы;

3. Изучить и обработать исходные данные;

4. Сформировать производные показатели;

5. Произвести отбор предикторов;

6. Обработать итоговый массив данных;

7. Определить подходящие метрики для оценки качества модели;

8. Произвести подбор оптимальных параметров для модели;

9. Построить модель.

Выводы

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

Заключение

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

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

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

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

В качестве элементов научной новизны, которые заключает в себе данная работа, можно выделить:

· разработку пользовательских функций для обработки данных;

· разработку пользовательских функций для подбора оптимальных параметров предиктивной модели;

· создание пользовательской метрики для оценки качества модели и разработку функции для автоматизированной настройки модели по созданному показателю.

Методика дает следующие преимущества при ее использовании:

· возможность быстрого масштабирования модели на другие дополнительные услуги;

· возможность ускоренного обучения специалистов по разработке предиктивных моделей;

· возможность экономии технических и временных ресурсов при работе с моделью.

Список использованных источников

1. Шпитонков С.В. Эффективное управление продажами FMCG. Проверено опытом. СПб.: Питер, 2006. 224 с.

2. Балашов В., Лашко А., Ляховецкий Л. Технологии широкополосного доступа xDSL. М.: Эко-Трендз, 2009. 256 с.

3. Обзор: Телеком 2016 [Электронный ресурс] / CNews Analytics. URL: http://www.cnews.ru/reviews/rossijskij_telekommunikatsionnyj_rynok. (Дата обращения: 20.03.2018).

4. Mattison R. Telecom Churn Management (Customer Telecare Series). Apdg Pub, 2001. 488 с.

5. Big Data and Telecom Analytics Market: Business Case, Market Analysis & Forecasts 2014 - 2019 [Электронный ресурс] / PRWEB. URL: http://www.prweb.com/releases/2013/11/prweb11359122.htm (Дата обращения: 21.02.2018).

6. 150 лет первому прогнозу погоды [Электронный ресурс] / BBC. URL: http://www.bbc.com/russian/multimedia/2011/08/110801_weather_birthday.shtml. (Дата обращения: 01.05.2018).

7. «МегаФон. Начинается с тебя». Компания представляет новое позиционирование [Электронный ресурс] / МегаФон. URL: https://corp.megafon.ru/press/news/federalnye_novosti/20170912-2001.html. (Дата обращения: 05.04.2018).

8. Методы машинного обучения находят применение в ритейле [Электронный ресурс] / Jetinfo. URL: http://www.jetinfo.ru/news/metody-mashinnogo-obucheniya-nakhodyat-primenenie-v. (Дата обращения: 28.02.2018).

9. Прогнозное моделирование финансовой устойчивости предприятий отрасли по производству безалкогольных напитков на основе рейтинговой оценки [Электронный ресурс] / Молодой учёный. URL: https://moluch.ru/archive/58/8004. (Дата обращения: 19.05.2018).

10. Желают знать, что будет [Электронный ресурс] / Banki. URL: http://www.banki.ru/news/daytheme/?id=8615326. (Дата обращения: 07.04.2018).

11. «12 Big Data кейсов» [Электронный ресурс] / Habr. URL: https://habrahabr.ru/company/npl/blog/318208. (Дата обращения: 15.03.2018).

12. FarmLogs получил $22 млн на Big Data для фермеров [Электронный ресурс] / AppTractor. URL: https://apptractor.ru/info/news/farmlogs-poluchil-22-mln-na-big-data-dlya-fermerov.html. (Дата обращения: 22.03.2018).

13. В промышленности набирает популярность новый цифровой сервис «предиктивное обслуживание» [Электронный ресурс] / IsiCad. URL: http://isicad.ru/ru/articles.php?article_num=19845. (Дата обращения: 20.04.2018).

14. David J. C. MacKay. Information Theory, Inference and Learning Algorithms 1st Edition. Cambridge University Press, 2003. 640 с.

15. Breiman L., Friedman J., Olshen R., Stone C. Classification and Regression Trees. CRC.: Chapman and Hall, 1994. 368 c.

16. Zweig M., Campbell G. ROC Plots: A Fundamental Evaluation Tool in Clinical Medicine. VL.: Clinical Chemistry, 1993. 577 с.

17. Davis J., Goadrich M. The Relationship Between Precision-Recall and ROC Curves. Pittsburgh, PA: International Conference on Machine Learning, 2006. 240 с.

18. Michie D., Spiegelhalter D., Taylor C. Machine Learning: Neural and Statistical Classification. Overseas Press, 2009. 290 с.

19. Powers W., David M. Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation. ML.: Journal of ML Technologies, 2011. 63 с.

20. Computing Precision and Recall for Multi-Class Classification Problems [Электронный ресурс] / Kavita Ganesan. URL: http://text-analytics101.rxnlp.com/2014/10/computing-precision-and-recall-for.html. (Дата обращения: 01.05.2018).

21. AUC ROC (площадь под кривой ошибок) [Электронный ресурс] / Александр Дьяконов. URL: https://alexanderdyakonov.wordpress.com/2017/07/28/auc-roc-%D0%BF%D0%BB%D0%BE%D1%89%D0%B0%D0%B4%D1%8C-%D0%BF%D0%BE%D0%B4-%D0%BA%D1%80%D0%B8%D0%B2%D0%BE%D0%B9-%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA. (Дата обращения: 06.05.2018).

22. Загоруйко Н.Г. Прикладные методы анализа данных и знаний. Новосибирск: ИМ СО РАН, 1999. 270 с.

23. Robert E. Schapire. Boosting. Foundations and Algorithms. Cl.: Emp State, 2012. 544 с.

24. Christopher M. Bishop. Pattern Recognition and Machine Learning (Information Science and Statistics). Springer, 2011. - 738 p.

25. Classification and Regression Trees [Электронный ресурс] / Лекции Cosma Shalizi. URL: http://www.stat.cmu.edu/~cshalizi/350/lectures/22/lecture-22.pdf. (Дата обращения: 25.04.2018).

26. David W., Hosmer G., Lemeshow S. Applied Logistic Regression. New York: Chichester, Wiley, 2002. 528 с.

27. Hastie, T., Tibshirani R., Friedman J. Chapter 15. Random Forests // The Elements of Statistical Learning: Data Mining, Inference, and Prediction. -- 1st ed. -- Springer-Verlag, 2009. -- 746 p.

28. Аналитические платформы [Электронный ресурс] / Роман Волынец. URL: https://professionali.ru/Soobschestva/sas/analiticheskie_platformy_znat_konkurentov_v_lico. (Дата обращения: 02.05.2018).

29. Comparing Python and R for Data Science [Электронный ресурс] / Anna Anisin. URL: https://blog.dominodatalab.com/comparing-python-and-r-for-data-science. (Дата обращения: 15.05.2018).

30. Экспертная система поддержки принятия решений [Электронный ресурс] / EDSS. URL: http://92.242.59.210/edss0917/. (Дата обращения: 19.05.2018).

31. Роберт И. Кабаков. R в действии. Анализ и визуализация данных на языке R. М.: ДМК Пресс, 2014. 580 с.

32. Лутц М. Изучаем Python. Символ-Плюс, 2011. 1280 с.

33. McCormic K., Abbott D., Meta S. Brown. IBM SPSS Modeler Cookbook. Packt Publishing, 2013. 382 с.

34. Палкин Н. Сборник материалов II межвузовской научно-практической конференции "Бизнес-аналитика. Использование аналитической платформы Deductor в учебном процессе Вуза". ООО "Лаборатория баз данных", 2011. 120 с.

35. Боровиков В.П. Популярное введение в современный анализ данных в системе STATISTICA. М.: Горячая линия-Телеком,2013. 288 с.

36. Smith J., Scalzo B., McGrass P. Toad Pocket Reference for Oracle. O'Reilly Media, 2005. 130 с.

37. Фейерштейн С., Прибыл Б. Oracle PL/SQL. Для профессионалов. СПб.: Питер, 2011. 800 с.

38. Айвазян С.А., Бухштабер В.М., Енюков И.С., Мешалкин Л.Д. Прикладная статистика: классификация и снижение размерности. М.: Финансы и статистика, 1989. 607 с.

39. Кендалл С. Многомерный статистический анализ и временные ряды. М.: Наука, 1976. 736 с.

40. Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition (Springer Series in Statistics) 2nd Edition. Springer, 2016. 745 с.

41. Friedman J. Stochastic Gradient Boosting. Cl.: Springer, 1999. 10 c.

42. Tukey J.W. Exploratory Data Analysis. Addison-Wesley, 1970. 688 с.

Приложение

П 1 Листинг кода по отбору предикторов

import numpy as np # Библиотека для работы с np-массивами, а также для использования некоторых метематических функуций

import pandas as pd # Библиотека для работы с csv-файлами, а также объектами DataFrame

import cx_Oracle # Библиотека для подключения к Oracle и импорта данных из БД

import datetime # Библиотека для работы со временем (используется для замера времени выполнения запросов).

# По факту, можно было использовать функцию %%time, то измерение с помощью datetime является менее ресурсоемким и

# более "прозрачным"

import sklearn # Библиотека для использования методов машинного обучения и анализа данных

from sklearn.feature_selection import f_classif, SelectKBest # Атрибуты модуля feature_selection библиотеки sklearn

# для отбора предикторов методом филтрации (SelectKBest) по метрике fscore (f_classif)

import os # Библиотека для определения некоторых системных параметров (в нашем случае - кодировки окружения)

os.environ['NLS_LANG'] = 'American_America.AL32UTF8' # Изменение языковой схемы окружения для корректного отображения

# текстовых полей с содержанием кириллицы

# Получение DataFrame с данными за 201703 из таблицы MA_CLIENT_DATA_MART

start = datetime.datetime.now() # Определение времени начала отработки скрипта (для фиксации продолжительности отработки блока)

conn = None # Объявление переменной для соединения с БД

# Определение запроса

sql_query = 'SELECT DISTINCT viasat_on, z.* FROM MA_CLIENT_DATA_MART_201703 z INNER JOIN (SELECT id_client, \

billing_id, viasat_on from CA_201703) d ON d.id_client = z.id_client and d.billing_id = z.billing_id \

WHERE viasat_on IS NOT NULL'

# Отлавливаем ошибку отсутствия подключения к заданной БД

try:

conn = cx_Oracle.connect("ext_consult/GfhjkmGjlhzlxbrf@DM") # Объявляем соединение с БД

try:

curs = conn.cursor() # Создаем курсор

curs.execute(sql_query) # Выполняем заданный выше запрос в БД

headers = [ x[0] for x in curs.description] # Определяем названия столбцов полученной таблицы

data = curs.fetchall() # Получаем данные, хранящиеся внутри таблицы, полученной по запросу

df201703 = pd.DataFrame( data, columns=headers) # Получение DataFrame по запросу SQL

print(df201703) # Вывод полученного DataFrame на экран

finally:

curs.close() # Закрываем курсор

finally:

if conn is not None:

conn.close() # Закрываем соединение с БД

stop = datetime.datetime.now() # Определение времени окончания отработки скрипта (для фиксации продолжительности отработки блока)

Источник: https://otherreferats.allbest.ru/download/1003541/