Подобно сюрреалистическим повествованиям Дэвида Линча, машинное обучение является глубоким, сложным и непонятным с первого взгляда. И поскольку его персонажи следуют лабиринтом по его рассказам, я тоже прошел через мир ML.

Наша задача была простой; спрогнозировать глобальные продажи видеоигры с учетом продаж в ЕС, консоли, даты выпуска и т. д. Сразу погрузившись в суть дела, я сразу же начал работать с данными в Kaggle. Однако начали возникать проблемы. В нашем наборе данных было более 1500 отдельных разработчиков для 15000 различных игр. Хотя я был только новичком, я понял, что использование этого будет создавать шум только тогда, когда дело доходит до обобщения нашей модели. Я сбросил эту, а также большинство других качественных переменных.

Хотя я не проверял, будет ли линейная регрессия подходящей моделью для наших данных, я все же продолжал продвигаться вперед, потому что часы, проведенные в Google, не дали лучшей альтернативы; это я понимаю. Мне хотелось бы выяснить, выполняются ли предположения для LR в наших данных, но мое время, потраченное на очистку данных, было заполнено множеством препятствий и якобы бессмысленных отклонений. Хотя у наших предикторов была небольшая мультиколлинеарность, на самом деле линейность существовала только между продажами в ЕС и глобальными продажами. Я считаю, что использование линейной регрессии затруднило меня и помешало мне улучшить тест более чем на пару процентов.

Я попытался использовать регрессию Риджа, метод, используемый для сильно коррелированных независимых переменных - если бы я знал об этом факте до написания этой статьи, я бы сэкономил 30 минут на копании в блокноте Каггла. Также использовалась регрессия лассо, но, поскольку это была просто еще одна форма линейной регрессии, мои безнадежные попытки использовать любые регрессионные модели, которые sklearn снова предлагала, оказались безрезультатными.

Моей последней попыткой улучшить свой результат было использование пакета нейронной сети в sklearn. У меня меньше, чем поверхностное понимание НС, и я не знаю, как их можно применить в задаче регрессии. Я использовал код из документации, который работал хуже, чем тест. К этому моменту я потратил столько времени на отладку и исследование альтернативных моделей, что не смог улучшить свой результат до крайнего срока.

Обдумайте это

В отличие от Дэвида Линча, я подробно остановлюсь на своей «истории» и на том, какие уроки следует извлечь. Во-первых, мне посчастливилось быть в когорте умных людей, у которых больше опыта в этой области, чем у меня. Они были любезны и показали нам свои отчеты, в которых использовалась случайная регрессия по лесам. Эта модель, вместе с некоторыми проницательными оптимизациями, дала результаты на порядки лучше, чем моя. Настройка гиперпараметров и проверка KFold - это идеи, которые я начал изучать. Теперь я буду готов заняться любыми подобными проблемами в будущем.

Рим был построен не за один день, но мое решение было построено. Формулировка проблемы, подобная нашей, требует серьезного обдумывания и подготовки, и обещать решение в эти сроки было бы неискренне. Я с нетерпением жду возможности решать подобные проблемы в будущем, но теперь знаю, что хорошие решения требуют времени и усердия.

Кроме того, не хлопайте в ладоши по этой статье, если читаете ее по телефону. Стань реальностью.