training_projects
Рекомендация тарифов для оператора мобильной связи "Мегалайн"
Оператор мобильной связи «Мегалайн» выяснил: многие клиенты пользуются архивными тарифами. Они хотят построить систему, способную проанализировать поведение клиентов и предложить пользователям новый тариф: «Смарт» или «Ультра».
Цель исследования: Построить модель для задачи классификации, которая выберет подходящий тариф. Построить модель с максимально большим значением accuracy
. Чтобы сдать проект успешно, нужно довести долю правильных ответов по крайней мере до 0.75. Проверить accuracy
на тестовой выборке самостоятельно.
Контекст исследования: Данные о поведении клиентов, которые уже перешли на тарифы «Смарт» или «Ультра».
План исследования:
- Изучить общую информацию о данных
- Разбить данные на выборки
- Исследовать модели
- Проверить модель на тестовой выборке
- Проверить модель на адекватность
- Сделать общие выводы по исследованию
Описание данных:
Датасэт - /datasets/users_behavior.csv
Каждый объект в наборе данных — это информация о поведении одного пользователя за месяц. Известно:
сalls
— количество звонков,minutes
— суммарная длительность звонков в минутах,messages
— количество sms-сообщений,mb_used
— израсходованный интернет-трафик в Мб,is_ultra
— каким тарифом пользовался в течение месяца («Ультра» — 1, «Смарт» — 0).
Вывод
По результатам исследования, лучшей моделью для задачи классификации, которая выбирает подходящий тариф, оказалась модель RandomForestClassifier
с гиперпараметрами max_depth = 7
и n_estimators = 5
. Ее точность предсказания на тестовой выборке составила 0.8102643856920684
.
Обучили модели "Дерево решений", "Случайный лес" и "Логистическая регрессия", применяя различные гиперпараметры для каждой.
Исследование было разделено на несколько этапов:
1. Изучение общей информации о данных:
- Загрузили необходимые для работы библиотеки
- Успешно выгрузили и изучили предоставленные данные о поведении клиентов, которые уже перешли на тарифы «Смарт» или «Ультра».
- Данные оказались готовыми для работы - не было выявлено пропусков или расхождений в типах данных
2. Разбивка данных на выборки:
- Разбили данные на три выборки (в соотношении 3:1:1): на обучающую, валидационную и тестовую
- Применили новоизученный параметр
stratify
3. Исследование моделей:
- Провели исследование трёх изученных ранее моделей на валидационной выборке
RandomForestClassifier
(случайный лес) - оказалась фаворитом среди моделей. Модель показала лучшую точность среди других -0.81493
при показателях max_depth = 7 и n_estimators = 5- На втором месте -
DecisionTreeClassifier
(дерево решений). Она выдала точность~ 0.8118
при max_depth = 5 - Последняя модель в "рейтинге" -
LogisticRegression
(логистическая регрессия) с точностью~ 0.7465
4. Проверка моделей на тестовой выборке:
- Объединили тренировочную и валидационную выборку в новую обучающую, на которой дообучили лучшую модель с лучшими гиперпараметрами
- Дообученная модель RF показала более точный результат метрики качества после проверки на тестовой выборке, чем старая
- Окончательная точность выбранной модели на тестовой выборке:
0.8102643856920684
5. Проверка модели на адекватность:
- Обучили "глупую" модель, которая всегда предсказывает один тариф
- Сверили точности предсказаний "глупой" модели и нашей лучшей модели на тестовых выборках -> лучшая модель показала более точный уровень предсказаний
- "Лучшая" модель -> адекватная