Попробуем это предсказать с помощью ML моделей. Да, я выложил личное решение этого популярного соревнования на Kaggle.
Не знаком с ML? Читай прошлый пост
Или если у тебя есть друг ML-щик, закинь обязательно ему этот пост. Даже если он просто общается с chat gpt
Итак, к делу!
Мое решение
Чем мое решение может быть тебе интересно? Тем, что я не решал его через обычный jupyter notebook. Я, как и множество новичков в ML, столкнулся с мыслью:
Ну как-то некрасиво этот ноутбук выглядит, че то мне нравится.
Поэтому этот репозиторий устроен сложнее, это более промышленный подход. К слову, он имеет ряд недостатков, если кто его докрутит, закидывайте.
Его структура выглядит так:
• solver.py: обучение и инференс модели;
• dataset.py: препроцессинг, генерация новых признаков, разделение на фолды;
• dnn.py: кастомная нейронная сеть (можно докручивать, сколько вздумается);
• config.py: конфигурация путей и параметров моделей;
• main.py: entry-point, запускаешь его и смотришь в консоль;
В зависимости от настроек
config.py, программа может сохранять чекпоинты, запускаться с последнего чекпоинта, запускать инференс с сохраненной модели. Необязательно брать и запускать этот пайплайн у себя. Я думаю, его главная цель - показать, что можно делать по-другому.
Сам же я получил следующие результаты (метрика - accuracy)
Ridge: 96%
Logistic Regression: 94%
Random Forest: 85%
LightGBM: 79%
DNN: 78%
Конечно, можно было побольше выжать на деревянных моделях, а что уж говорить о нейронке, но мне было лень 😆
К слову, саму идею пайплайна я спиздил, поэтому не стесняйтесь 😏
