Этот блокнот содержит полное исследование задачи бинарной классификации. Мы предсказываем реакцию клиентов на предложение мед страхования. Задача взята из соревнования Kaggle Playground Series Season 4 Episode 7.
- EDA (Exploratory Data Analysis): анализ данных
- LightAutoML Baseline: базовое решение с использованием LightAutoML, две конфигурации
- Custom Solution: собственные решения без использования LightAutoML
- Простые pipeline подходы
- Улучшенные методы с очисткой данных
- CatBoost решения: простой, продвинутый, с Optuna
- Выводы и суммаризация: анализ результатов и заключение
После анализа данных мы выяснили следующее:
Дисбаланс классов: Классы распределены неравномерно - класс 0 составляет 87.70% (10,089,739 наблюдений), класс 1 только 12.30% (1,415,059 наблюдений). Соотношение 7.13:1. Нужно учесть это при обучении моделей используя техники балансировки классов.
Важные признаки: Наиболее важными признаками являются Previously_Insured (корреляция -0.3459), Policy_Sales_Channel (-0.1527) и Age (0.1221). Эти признаки сильнее всего связаны с целевой переменной.
Типы данных: В данных 7 численных признаков и 3 категориальных.
Распределения: Признак Annual_Premium имеет скошенное распределение с большим разбросом значений, необходимо логарифмическое преобразование.
Выбросы: Найдены выбросы в Annual_Premium (20.66% данных) и Driving_License (0.20%). Выбросы в Annual_Premium требуют специальной обработки.
Пропущенные значения: Пропущенных значений в данных нет, все 11,504,798 наблюдений содержат полную информацию.
Преобразования: Желательно логарифмирование Annual_Premium, категоризация Age, создание признаков взаимодействия между важными признаками.
Все разработанные модели были отправлены на платформу Kaggle для оценки на тестовой выборке. Ниже представлены результаты всех submission, они немного лучше чем результаты в ноутбуке, так как были попытки обучения на больших обьемах данных
- Наилучший результат показал catboost с optuna
0.89518 - LightGBM c optuna
0.88089 - Бейзлайн на LightAutoML
0.87945
EDA анализ показал дисбаланс классов и важность некоторых признаков для предсказания целевой переменной
LightAutoML baseline показал хорошие результаты с двумя разными конфигурациями. Это подтверждает что автоматизированные подходы работают хорошо
Собственное решение с CatBoost дало значительное улучшение результатов по сравнению с baseline. Простой подход с минимальной предобработкой оказался самым эффективным
Feature engineering не дал значительного улучшения качества модели. Это значит что базовых признаков достаточно для этой задачи
Оптимизация гиперпараметров через Optuna помогла дополнительно улучшить качество модели
