Оператор мобильной связи «Мегалайн» выяснил: многие клиенты пользуются архивными тарифами. Они хотят построить систему, способную проанализировать поведение клиентов и предложить пользователям новый тариф: «Смарт» или «Ультра».
В вашем распоряжении данные о поведении клиентов, которые уже перешли на эти тарифы (из проекта курса «Статистический анализ данных»).
Нужно построить модель для задачи классификации, которая выберет подходящий тариф. Предобработка данных не понадобится — вы её уже сделали. Постройте модель с максимально большим значением accuracy. Чтобы сдать проект успешно, нужно довести долю правильных ответов по крайней мере до 0.75. Проверьте accuracy на тестовой выборке самостоятельно.
- Откройте файл с данными и изучите его. Файл: users_behavior.csv
- Разделите исходные данные на обучающую, валидационную и тестовую выборки.
- Исследуйте качество разных моделей, меняя гиперпараметры. Кратко напишите выводы исследования.
- Проверьте качество модели на тестовой выборке.
- Дополнительное задание: проверьте модели на вменяемость. Ничего страшного, если не получится: эти данные сложнее тех, с которыми вы работали раньше. В следующем курсе подробнее об этом расскажем.
Каждый объект в наборе данных — это информация о поведении одного пользователя за месяц. Известно:
с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 для каждого классификатора на одном графике и проинтерпретировать.
- Sampling bias
- Must-Know: How to evaluate a binary classifier
- 6 testing methods for binary classification
- Active learning
- Why Machine Learning Models Degrade In Production
- Data Fest Minsk 2019: Эксплуатация ML в Почте Mail.ru, Эдуард Тянтов
- Метрики в задачах машинного обучения
- В чём мерить будем? Как выбрать правильные ML-метрики под задачи бизнеса