Вопрос или проблема
Я строил модель линейной регрессии с около 150 строками данных. Я проверил корреляцию параметров с целевой переменной и попытался оставить только их, так как у меня меньше данных, и я хотел получить простую линейную модель.
MAE и MAPE действительно достаточно приемлемы:
MAE на обучающей выборке: 3.3%, MAE на валидационной выборке: 4.9%
График обучающих и валидационных данных также выглядит вполне достойно, синяя линия представляет собой фактические значения для обучающих данных, а оранжевая линия представляет собой предсказанные значения на обучающих данных. Зеленая линия представляет собой фактические значения для валидационных данных, а красная линия представляет собой предсказанные значения:
Тем не менее, мои:
R2 на обучающей выборке: 0.63, R2 на валидационной выборке: -0.37
Я искал по многим ресурсам, спрашивал Google Gemini ChatGPT, получал похожие ответы, но я всё ещё не могу понять, почему мой R2 получается таким странным, когда всё остальное выглядит нормально. Можем ли мы использовать эту модель для внедрения или вывода в реальном мире?
Пожалуйста, обратите внимание: я также пробовал Random Forest, LightGBM, XGBoost и многие другие линейные и модели с бэггингом/усилением, результаты практически аналогичны. График выглядит нормально, MAE, MAPE выглядят хорошо, но R2 не в обычном диапазоне.
Ответ или решение
Понимание Показателя R² и Его Необычного Значения
Вы на правильном пути в своем анализе линейной регрессии, но столкнулись с интересной проблемой. Показатель R², который представляет собой процент объясненной вариации зависимой переменной моделью, в идеале должен быть в диапазоне от 0 до 1 для хорошей модели. Однако, когда ваше значение R² отрицательное (например, -0.37), это может вызвать недоумение, особенно когда другие метрики, такие как MAE и MAPE, показывают достойные результаты.
Оценка Показателя R²
Рассмотрим, откуда берется это значение:
- Основное Определение R²: R² рассчитывается как 1 минус отношение суммы квадратов остатков к общей сумме квадратов. Если модель не лучше, чем простая модель, основанная на среднем значении зависимой переменной, R² станет отрицательным.
- Нехорошая Модель: Отрицательное значение R² может указывать на отсутствие связи между независимыми переменными и целевой переменной. Ваши выборки могли просто не иметь достаточной предсказательной силы.
Возможные Причины Низкого Значения R²
-
Проблемы с Датасетом:
- Качество данных: Возможно, в вашем датасете имеется много выбросов или аномальных значений, которые ухудшают качество предсказаний.
- Неподходящие переменные: Даже если вы проверили корреляцию, важно учитывать возможность того, что выбранные вами переменные не содержат в себе достаточной информации для предсказания целевой переменной.
-
Переобучение:
- Ваши результаты для R² могут указывать на возможность переобучения модели на тренировочных данных, что может привести к плохой общей производительности на валидационных данных.
-
Природа Целевой Переменной:
- Посмотрите на распределение вашей целевой переменной. Если оно слишком скошенное или имеет ненормальное распределение, это может повлиять на вашу способность предсказать значения адекватно.
Что Можно Сделать?
-
Проверка Данных и Предобработка:
- Убедитесь в отсутствии пропущенных значений и выбросов.
- Проведите анализ на наличие линейной зависимости между зависимой и независимыми переменными. Используйте визуализацию (например, на графиках рассеяния).
-
Модели и Методологии:
- Рассмотрите возможность использования полиномиальной регрессии или других, более сложных, нелинейных моделей, если ваши данные этого требуют.
- Попробуйте различные методы масштабирования данных перед обучением модели.
-
Кросс-валидация:
- Используйте кросс-валидацию для более стабильной оценки производительности модели, что может помочь в выявлении проблем с переобучением.
Заключение
Хотя ваш MAE и MAPE разумные, отрицательный R² предупреждает об определенных проблемах в модели. И хотя, теоретически, возможно, что эта модель может использоваться в реальных условиях, вам следует быть осторожным и стремиться к улучшению модели. Поняв, где могут возникать проблемы, и применив предложенные стратегии, вы сможете добиться лучших результатов, что сделает вашу модель более надежной и эффективной для применения.