Вопрос или проблема
Я пытаюсь исследовать модели для предсказания, выиграет ли команда или проиграет, основываясь на характеристиках команды и ее соперника. Мои обучающие данные состоят из 15 000 образцов с 760 числовыми признаками. Каждый образец представляет собой игру между двумя командами, а признаки — это долгосрочные и краткосрочные статистические данные о каждой команде на момент игры (то есть среднее количество очков за последние 10 игр).
Я думал использовать бинарный классификатор в виде многослойного перцептрона. Каждый слой имеет нормализацию по батчам, дроп-аут и активацию ReLU. На выходном слое используется активация сигмоиды. Я также использую анализ главных компонент для уменьшения размерности моего набора данных.
Я использую автоматический тюнер гиперпараметров с рандомизированным поиском и популяционным обучением для нахождения оптимальной точности гиперпараметров. Мне удается настроить гиперпараметры так, чтобы потеря при обучении и потеря при валидации обе сходились к очень малому значению, но когда я смотрю на точность, я получаю очень минимальные улучшения.
При взгляде на начальную точность после одной эпохи обучения, она кажется около 60% по всем начальным гиперпараметрам, и максимальная точность достигает примерно 70% лишь после 30 эпох.
Мне не совсем ясно, что делать. Значит ли это, что мои данные слишком шумные/случайные? Следует ли мне пересмотреть архитектуру? Получил бы я лучшие результаты с помощью регрессии вместо классификации? Также, поскольку данные имеют последовательный характер, это может подойти для рекуррентной архитектуры, но я не знаком с RNN, которая обучается на нескольких последовательностях, в отличие от одной последовательности.
Трудно сказать, связано ли это с моделью или с соотношением сигнал/шум в данных. Одним из проверочных моментов может быть то, насколько хорошо человек справится с самыми важными признаками.
Я не думаю, что вам следует переходить к последовательной модели. Мне сложно представить, что она покажет лучшие результаты для этих данных. Также не переходите к регрессии.
Некоторые предложения:
- Попробуйте модель градиентного буста, такую как LightGBM или XGBoost. Она действительно хороша для табличных данных.
- Занимайтесь обработкой признаков и постарайтесь придумать признаки, которые могут быть полезны, но отсутствуют в данных. Вы можете агрегировать данные, чтобы извлечь последовательную информацию, но, похоже, вы уже делаете это в какой-то степени.
Ответ или решение
Точность и Убыток в Многослойных Перцептронах (MLP)
Ваша задача по прогнозированию побед и поражений команд на основании статистических данных является интересным вызовом в области машинного обучения. Рассмотрим подробнее вопросы, связанные с точностью вашей модели и потерями, а также возможные пути их улучшения.
1. Понимание Точности и Потерь
Ваша модель, основанная на многослойном перцептроне (MLP), показывает низкую точность, которая колеблется около 60-70% после 30 эпох обучения. Чтобы понять природу этой проблемы, важно разграничить понятия точности и потерь:
-
Точность (Accuracy): Это доля правильно предсказанных результатов среди общего числа предсказаний. Несмотря на то, что точность является важной метрикой, она не всегда отражает истинную эффективность модели, особенно в задачах с несбалансированными классами (например, если побед у одной команды значительно больше).
-
Потери (Loss): Это функция, которая измеряет, насколько хорошо или плохо модель предсказывает выходные данные. Низкие значения потерь свидетельствуют о том, что модель хорошо "учится" на тренировочных данных, но это не всегда приводит к высокому уровню точности.
2. Причины Низкой Точности
Исходя из вашего описания, есть несколько возможных факторов, влияющих на низкую точность:
-
Шум в Данных: Если ваши данные содержат много нерелевантной или шумовой информации, это может снизить точность модели. Основными решениями могут стать очистка данных и более тщательное исследование признаков.
-
Неподходящая Архитектура Модели: Хотя MLP является универсальным инструментом для классификации, его архитектура могла оказаться недостаточно мощной для задачи. Возможно, стоит попробовать более сложные модели, такие как градиентный бустинг (например, XGBoost или LightGBM), которые чаще показывают лучшие результаты с табличными данными.
3. Рекомендации по Улучшению Модели
Для повышения точности и улучшения улучшения модели можно рассмотреть несколько стратегий:
-
Особенности и Инженерия Признаков: Сделайте акцент на проектировании новых, более выразительных признаков. Попробуйте агрегировать данные или извлечь более глубокие из них знания. Иногда создание новых признаков на основе статистики и исторических данных может значительно улучшить результаты.
-
Проба Альтернативных Моделей: Хотя вы используете MLP, может быть полезно протестировать модели на основе градиентного бустинга или другие подходы, которые лучше справляются с задачами классификации в табличных данных.
-
Устранение Несбалансированности Классов: Если ваши классы (победы и поражения) представлены неравномерно, то стоит применить методы балансировки, такие как снижение или увеличение выборки.
-
Анализ Важности Признаков: В качестве предварительного теста можно провести анализ, чтобы понять, как бы человек решил данную задачу на основе наиболее важных признаков. Это поможет выявить возможные недостатки в данных.
4. Заключение
Обратите внимание на то, что изменения в архитектуре модели и улучшение признаков могут значительно повлиять на точность, не требуя изменения принципиального подхода к задаче. Следуя этим рекомендациям, вы сможете оптимизировать свою модель и, возможно, добиться более высоких результатов в прогнозировании исходов матчей. Не стесняйтесь экспериментировать с различными методами, чтобы найти наиболее оптимальный путь для вашей задачи.