Skip to content
This repository has been archived by the owner on Apr 10, 2023. It is now read-only.

Latest commit

 

History

History

sprint6

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Введение в машинное обучение

Описание проекта

Оператор мобильной связи «Мегалайн» выяснил: многие клиенты пользуются архивными тарифами. Они хотят построить систему, способную проанализировать поведение клиентов и предложить пользователям новый тариф: «Смарт» или «Ультра».

В вашем распоряжении данные о поведении клиентов, которые уже перешли на эти тарифы (из проекта курса «Статистический анализ данных»).

Нужно построить модель для задачи классификации, которая выберет подходящий тариф. Предобработка данных не понадобится — вы её уже сделали. Постройте модель с максимально большим значением accuracy. Чтобы сдать проект успешно, нужно довести долю правильных ответов по крайней мере до 0.75. Проверьте accuracy на тестовой выборке самостоятельно.

Инструкция по выполнению проекта

  1. Откройте файл с данными и изучите его. Файл: users_behavior.csv
  2. Разделите исходные данные на обучающую, валидационную и тестовую выборки.
  3. Исследуйте качество разных моделей, меняя гиперпараметры. Кратко напишите выводы исследования.
  4. Проверьте качество модели на тестовой выборке.
  5. Дополнительное задание: проверьте модели на вменяемость. Ничего страшного, если не получится: эти данные сложнее тех, с которыми вы работали раньше. В следующем курсе подробнее об этом расскажем.

Описание данных

Каждый объект в наборе данных — это информация о поведении одного пользователя за месяц. Известно:

  • сalls — количество звонков,
  • minutes — суммарная длительность звонков в минутах,
  • messages — количество sms-сообщений,
  • mb_used — израсходованный интернет-трафик в Мб,
  • is_ultra — каким тарифом пользовался в течение месяца («Ультра» — 1, «Смарт» — 0).

Чеклист

  • Как вы изучаете данные после загрузки?
  • Корректно ли разделяете данные на выборки?
  • Как выбираете размеры выборок?
  • Правильно ли вы оцениваете качество моделей в исследовании?
  • Какие модели и гиперпараметры вы используете?
  • Какие выводы об исследовании делаете?
  • Правильно ли тестируете модели?
  • Насколько высокое значение accuracy получаете?
  • Соблюдаете структуру проекта и поддерживаете аккуратность кода?

Дополнительные эксперименты 😎

Проект сдан, но помимо основного задания можно дополнительно:

  • Стратифицировать выборки – см. параметр stratify в train_test_split;
  • Посмотреть, как accuracy будет зависеть от различных прогонов разбиения данных train_test_split, для этого нужно убрать фиксирование random_state;
  • Посчитать ещё ROC AUC для каждого классификатора (ссылка раз, ссылка два). Это более хитрая метрика оценки качества бинарного классификатора, которая учитывает его качество в большей степени, чем просто accuracy.
  • Построить the ROC curve для каждого классификатора на одном графике и проинтерпретировать.

Полезные ссылки