Анализ данных: финальный проект
Offered By: Moscow Institute of Physics and Technology via Coursera
Course Description
Overview
Финальный проект даст вам возможность применить полученные в рамках специализации знания к задаче из реального мира. Под руководством успешных специалистов в науке о данных вы сможете поработать над актуальным проектом в одной из областей: электронная коммерция, социальные медиа, информационный поиск, бизнес-аналитика и др.
В отличие от задач, основанных на модельных данных, работа над проектом из реальной жизни даст вам возможность самостоятельно пройти все этапы анализа данных — от подготовки данных до построения финальной модели и оценки её качества. В результате в вашем арсенале появится проект, который вы сможете использовать на практике и самостоятельно развивать в дальнейшем.
Наличие такого проекта станет вашим конкурентным преимуществом, ведь вы всегда сможете продемонстрировать успешный проект потенциальному работодателю.
Видео курса разработаны на Python 2. Задания и ноутбуки к ним адаптированы к Python 3.
В отличие от задач, основанных на модельных данных, работа над проектом из реальной жизни даст вам возможность самостоятельно пройти все этапы анализа данных — от подготовки данных до построения финальной модели и оценки её качества. В результате в вашем арсенале появится проект, который вы сможете использовать на практике и самостоятельно развивать в дальнейшем.
Наличие такого проекта станет вашим конкурентным преимуществом, ведь вы всегда сможете продемонстрировать успешный проект потенциальному работодателю.
Видео курса разработаны на Python 2. Задания и ноутбуки к ним адаптированы к Python 3.
Syllabus
- Неделя 1
- Неделя 1: Lesson Choices
- Choice 1: В этом проекте мы будем решать задачу идентификации пользователя по его поведению в сети Интернет. Это сложная и интересная задача на стыке анализа данных и поведенческой психологии. В качестве примера, компания Яндекс решает задачу идентификации взломщика почтового ящика по его поведению. В двух словах, взломщик будет себя вести не так, как владелец ящика: он может не удалять сообщения сразу по прочтении, как это делал хозяин, он будет по-другому ставить флажки сообщениям и даже по-своему двигать мышкой. Тогда такого злоумышленника можно идентифицировать и "выкинуть" из почтового ящика, предложив хозяину войти по SMS-коду. Этот пилотный проект описан в статье на Хабрахабре. Похожие вещи делаются, например, в Google Analytics и описываются в научных статьях, найти можно многое по фразам "Traversal Pattern Mining" и "Sequential Pattern Mining". | Choice 2: Выстраивание взаимоотношений с клиентами или customer relationship managmenet (CRM) является важным звеном в функционировании любого бизнеса. От того, насколько хорошо простроена работа с аудиторией зачастую зависит успех всей компании. В проекте вы столкнететь с одной из наиболее актуальных задач из области CRM: прогнозирование оттока пользователей или churn prediction. Суть задачи заключается в заблаговременном нахождении сегмента пользователей, склонных через некоторый промежуток времени отказаться от использования некоторого продукта или услуги. Точное и своевременное нахождение таких пользователей позволяет эффективно бороться с их оттоком, например, выявлять причины оттока и принимать меры по удержанию клиентов. Эта задача актуальна для большинства организаций, оказывающих услуги в сегменте B2C и вдвойне актуальна в областях, где распространение услуги близко к отметке 100%. Хороший пример такой области – рынок мобильной связи, где насыщение уже фактически произошло, и как следствие постепенно снижается прирост клиентской базы. В такой ситуации задача удержания клиентов и выстраивания с ними взаимоотношений выходит на первый план. В процессе работы над проектом вы научитесь математически ставить задачу прогнозирования оттока, строить и оптимизировать прогнозные модели, оценивать их качество и экономический потенциал. И, конечно, полученные знания и опыт вы сможете применять в дальнейшем для решения аналогичной задачи в сфере вашей работы . | Choice 3: Задача этого проекта — научиться предсказывать количество поездок в ближайшие часы в каждом районе Нью-Йорка. Для того, чтобы её решить, сырые данные необходимо агрегировать по часам и районам. Агрегированные данные будут представлять собой почасовые временные ряды с количествами поездок из каждого района. Похожие задачи возникают на практике, если вам необходимо спрогнозировать продажи большого количества товаров в большом количестве магазинов, объём снятия денег в сети банкоматов, посещаемость разных страниц сайта и т.д. | Choice 4: В этом проекте вам предстоит решать задачи анализа тональности текстов в нескольких разных постановках. Начнется все с несложных экспериментов на отзывах на фильмы, в ходе которых вы построите простую модель и немного доработаете ее. Затем вам предстоит поучаствовать в соревновании по сентимент-анализу отзывов на товары и сделать интерактивную демонстрацию для своего алгоритма, которую можно будет показать даже тем, кто никогда не видел Python и машинное обучение. После этого вы поупражняетесь в парсинге веб-страниц и столкнетесь с жестокой реальностью - к вам придет заказчик, который захочет от вас сентимент-анализ отзывов на определенную категорию товаров, но вот выборку для обучения придется собирать самим. Как и угадывать, что же заказчик называет негативными отзывами, а что позитивными. В конце проекта вам потребуется сделать демонстрацию и для этого алгоритма, чтобы заказчик мог с ним поиграться, а не только лишь ориентироваться на качество из контеста.
- Неделя 2: Lesson Choices
- Choice 1: На второй неделе мы продолжим подготавливать данные для дальнейшего анализа и построения прогнозных моделей. Конкретно, раньше мы определили что сессия – это последовательность из 10 посещенных пользователем сайтов, теперь сделаем длину сессии параметром, и потом при обучении прогнозных моделей выберем лучшую длину сессии. Также мы познакомимся с предобработанными данными и статистически проверим первые гипотезы, связанные с нашими наблюдениями. | Choice 2: На прошлой неделе мы познакомились с задачей и данными. Пора задуматься о том, с какими особенностями и трудностями нам предстоит работать в процессе построения модели прогнозирования оттока. Как может сказаться на качестве модели то, что данные не сбалансированы по классам? Какие метрики качества подходят в таких случаях? Каким будет KPI? Как организовать процесс оценки решения с помощью кросс-валидации, какую схему выбрать? Как следует обрабатывать данные разного типа (например, категориальные) для того, чтобы использовать их при построении модели? На все эти вопросы нам предстоит ответить на этой неделе. | Choice 3: На этой неделе вам предстоит освоить работу с геоданными, научиться рисовать объекты на статистических и динамических картах, а также понять, для каких прямоугольных районов прогнозировать спрос на такси на самом деле нужно. | Choice 4: На этой неделе вам предстоит поэкспериментировать с признаками в задаче анализа тональности отзывов.
- Неделя 3: Lesson Choices
- Choice 1: Теперь мы займемся визуальным анализом данных и построением признаков. Сначала мы вместе построим и проанализируем несколько признаков, связанных со временем посещения сайта, потом Вы сможете сами придумать и описать различные признаки. На этой неделе задание имеет вид Peer-Review, так что творчество здесь активно приветствуется. Если задействуйте IPython-виджеты, библиотеку Plotly, анимации и прочий интерактив, всем от этого будет только лучше. | Choice 2: На этой неделе вам предстоит построить модель временного ряда для одной из зон; вы можете выбрать любую. Если вы забыли, как в питоне можно прогнозировать временные ряды, пересмотрите первую неделю пятого курса. | Choice 3: Настало время перейти к построению моделей! Давайте начнем с построения так называемых бейзлайнов - построим несколько моделей, которые в дальнейшем будем использовать в качестве первого приближения для будущей модели. Часто для решения подобных задач используются линейные модели, а также ансамбли, например, случайный лес или градиентный бустинг | Choice 4: Итак, вы уже немного познакомились с задачей. Теперь попробуйте поучаствовать в соревновании по анализу тональности текстов и побить бейзлайн (или вовсе выйти в топ участников).
- Неделя 4: Lesson Choices
- Choice 1: Теперь мы наконец подойдем к обучению моделей классификации, сравним на кросс-валидации несколько алгоритмов, разберемся, какие параметры длины сессии (session_length и window_size) лучше использовать. Также для выбранного алгоритма построим кривые валидации (как качество классификации зависит от одного из гиперпараметров алгоритма) и кривые обучения (как качество классификации зависит от объема выборки). | Choice 2: Итак, мы научились обрабатывать данные, выбрали схему кросс-валидации и определились с метриками качества. Пора переходить к оптимизации модели. На этой неделе вам предстоит принять участие в соревновании на платформе kaggle inclass! Цель такого соревнования - преодолеть предложенное baseline решение, а, главное, обсудить и сравнить предложенные решения на форуме. Какие признаки оказали наибольший вклад в модель? Как лучше обрабатывать категориальные признаки? Нужно ли делать отбор признаков, А балансировать выборку? Экспериментируйте с данными и обсуждайте ваши решения на форуме! | Choice 3: На прошлой неделе вы научились прогнозировать временной ряд со сложной сезонностью с помощью модели ARIMA на примере одной из географических зон. На этой неделе вы построите такие прогнозы для каждой зоны. Чтобы не подбирать вручную огромное количество моделей, вам понадобится сделать кластеризацию рядов. | Choice 4: Теперь, когда у вас уже получается делать неплохие решения задачи сентимент-анализа, пора научиться собирать для вашего алгоритма интерактивную демонстрацию в виде простенькой веб-странички, чтобы на него могли посмотреть в действии не только те, кто может запустить ipython notebook.
- Неделя 5: Lesson Choices
- Choice 1: На этой неделе мы вспомним про концепцию стохастического градиентного спуска и опробуем классификатор Scikit-learn SGDClassifier, который работает намного быстрее на больших выборках, чем алгоритмы, которые мы тестировали на 4 неделе. Также мы познакомимся с данными соревнования Kaggle по идентификации пользователей и сделаем в нем первые посылки. По итогам этой недели дополнительные баллы получат те, кто попадет в топ-30 публичного лидерборда соревнования. | Choice 2: На прошлой неделе мы познакомились с задачей и данными, пришло время приготовить датасет для построения моделей. Пора задуматься о том, с какими особенностями и трудностями нам предстоит работать в процессе построения моделей прогнозирования оттока. Как может сказаться на качестве модели то, что данные не сбалансированы по классам? Какие метрики качества подходят в таких случаях? Каким будет KPI? Как организовать процесс оценки решения с помощью кросс-валидации, какую схему выбрать? Как следует обрабатывать данные разного типа(например, категориальные) для того, чтобы использовать их при построении модели? На все эти вопросы нам предстоит ответить на этой неделе. | Choice 3: Класс моделей ARIMA недостаточно богат для наших данных: с их помощью, например, никак нельзя учесть взаимосвязи между рядами. Нам нужна более сложная модель. Давайте займёмся сведением задачи массового прогнозирования рядов к регрессионной постановке! | Choice 4: Не всегда в вашем распоряжении уже есть готовая выборка для построения модели и оценки ее качества, иногда ее нужно собрать самому. На этой неделе мы будем учиться парсить веб-страницы.
- Неделя 6: Lesson Choices
- Choice 1: На этой неделе мы познакомимся с популярной библиотекой Vowpal Wabbit и попробуем ее на данных соревнования. Знакомиться будем на данных Scikit-learn по новостям, сначала в режиме бинарной классификации, затем – в многоклассовом режиме. Далее будем классифицировать рецензии к фильмам с сайта IMDB. Наконец, применим Vowpal Wabbit к нашему соревнованию. Материала немало, но Vowpal Wabbit того стоит! | Choice 2: Выстраивание взаимоотношений с клиентами или customer relationship managmenet (CRM) является важным звеном в функционировании любого бизнеса. От того, насколько хорошо простроена работа с аудиторией зачастую зависит успех всей компании. В проекте вы столкнететь с одной из наиболее актуальных задач из области CRM: прогнозирование оттока пользователей или churn prediction. Суть задачи заключается в заблаговременном нахождении сегмента пользователей, склонных через некоторый промежуток времени отказаться от использования некоторого продукта или услуги. Точное и своевременное нахождение таких пользователей позволяет эффективно бороться с их оттоком, например, выявлять причины оттока и принимать меры по удержанию клиентов. Эта задача актуальна для большинства организаций, оказывающих услуги в сегменте B2C и вдвойне актуальна в областях, где распространение услуги близко к отметке 100%. | Choice 3: На этой неделе вам предстоит попробовать добавить в вашу регрессионную модель дополнительные признаки. Дайте волю своему воображению! Такие моменты — одни из лучших в работе специалиста в науке о данных. | Choice 4: Теперь вы готовы окунуться в более агрессивную симуляцию реальной жизни. Вам нужно будет разработать модель, которая будет давать точные прогнозы на тестовой выборке заказчика, но обучающую выборку для вас собрать не готовы - придется выкручиваться самостоятельно. Усугубляет ситуацию то, что вы даже не знаете ответов на выборке заказчика, но можете периодически отправлять свои прогнозы на проверку.
- Неделя 7
- Неделя 7: Lesson Choices
- Choice 1: Теперь остался последний шаг – объединить все сделанное ранее! | Choice 2: Выстраивание взаимоотношений с клиентами или customer relationship managmenet (CRM) является важным звеном в функционировании любого бизнеса. От того, насколько хорошо простроена работа с аудиторией зачастую зависит успех всей компании. В проекте вы столкнетесь с одной из наиболее актуальных задач из области CRM: прогнозирование оттока пользователей или churn prediction. Суть задачи заключается в заблаговременном нахождении сегмента пользователей, склонных через некоторый промежуток времени отказаться от использования некоторого продукта или услуги. Точное и своевременное нахождение таких пользователей позволяет эффективно бороться с их оттоком, например, выявлять причины оттока и принимать меры по удержанию клиентов. Эта задача актуальна для большинства организаций, оказывающих услуги в сегменте B2C и вдвойне актуальна в областях, где распространение услуги близко к отметке 100%. | Choice 3: Ваш проект почти закончен! На этой неделе вам предстоит оформить результат, используя интерактивные графики. | Choice 4: Вы неплохо потрудились и справились с задачей заказчика. Дело за малым - нужно презентовать ему свое решение, а для этого неплохо было бы снова собрать демонстрацию.
Taught by
Вадим Стрижов, Виктор Кантор, Евгений Рябенко, Евгений Соколов and Эмели Драль
Tags
Related Courses
Design Computing: 3D Modeling in Rhinoceros with Python/RhinoscriptUniversity of Michigan via Coursera A Practical Introduction to Test-Driven Development
LearnQuest via Coursera FinTech for Finance and Business Leaders
ACCA via edX Access Bioinformatics Databases with Biopython
Coursera Project Network via Coursera Accounting Data Analytics
University of Illinois at Urbana-Champaign via Coursera