Вопрос или проблема
Контекст: В настоящее время я разрабатываю и сравниваю модели машинного обучения для прогнозирования данных о жилье. У меня около 32000 точек данных, 42 признака, и я предсказываю цену жилья. Я сравниваю регрессор случайного леса, регрессор дерева решений и линейную регрессию. Я вижу, что наблюдается некоторое переобучение, так как мои начальные значения по сравнению с перекрестными валидированными значениями следующие:
RF: 10-кратный R-квадрат = 0.758, отрицательный RMSE = -540.2 по сравнению с непроверенным R-квадратом 0.877 и RMSE 505.6
DT: 10-кратный R-квадрат = 0.711, отрицательный RMSE = -576.4 по сравнению с непроверенным R-квадратом 0.829 и RMSE 595.8.
LR: 10-кратный R-квадрат = 0.695, отрицательный RMSE = -596.5 по сравнению с непроверенным R-квадратом 0.823 и RMSE 603.7
Я уже настроил гиперпараметры для RF и DT, поэтому я думал о выборе признаков как следующем шаге, чтобы уменьшить некоторое из этого переобучения (особенно учитывая, что я знаю важность признаков/коэффициенты). Я хочу провести отбор признаков сейчас с помощью метода фильтрации (например, Pирсона), так как хочу, чтобы признаки, используемые в каждой модели, были последовательными.
Вопрос: Как мне определить количество признаков для выбора с помощью отбора признаков? Это произвольно? Или мне просто нужно удалить все те, которые не имеют большой корреляции с данными? Есть ли способ получить оптимальный набор признаков без выполнения поиска по сетке или случайного поиска?
Вопрос для уточнения: Являются ли значения R2 и RMSE, полученные с помощью перекрестной проверки, хорошими мерами успеха для сравнения переобучения?
Переобучение возникает, когда ваша модель слишком точно соответствует обучающим данным и, следовательно, может не справляться с новыми данными или надежно предсказывать будущие наблюдения. По сути, когда производительность на наборе для обучения (или валидации) значительно лучше, чем на тестовом наборе.
У вас противоположный случай: производительность на тестовом наборе значительно лучше, чем на наборе валидации.
Это может произойти, если два набора данных не принадлежат одной и той же распределению (как вы разделили наборы для обучения/валидации/теста?). В этом случае данные тестового набора могут быть намного проще для прогнозирования.
Еще одной возможностью является то, что размер тестового набора слишком мал.
Мой совет: перемешайте свой набор данных; разделите на 70% для обучения и 30% для теста. Выполните перекрестную проверку на обучающем наборе. Вычислите R2 для обоих наборов.
Используйте методы отбора признаков для регрессионных задач. Большинство библиотек машинного обучения имеют свои разновидности алгоритмов отбора признаков. Например, scikit-learn — это библиотека машинного обучения и науки о данных в парадигме программирования Python, которая содержит множество реализаций алгоритмов отбора признаков (готовых к использованию).
Напоминаю. Существуют методы отбора признаков для задач классификации, поэтому вам следует изучить вопрос, прежде чем выбирать какие-либо алгоритмы отбора признаков, чтобы избежать получения бесполезных или вводящих в заблуждение результатов.
Ответ или решение
Выбор количества признаков при отборе признаков для регрессионных алгоритмов является важным аспектом, и подход к этому вопросу требует внимательности и обоснования.
Как выбрать количество признаков для отбора
При отборе признаков в контексте регрессионного анализа вы можете использовать несколько подходов:
-
Корреляционный анализ: Начните с вычисления корреляции между вашими признаками и целевой переменной (ценой жилья). Можно использовать метод, такой как коэффициент Пирсона, чтобы идентифицировать признаки, которые имеют значимую линейную зависимость с целевой переменной. Необходимо учитывать, что не всегда линейная связь указывает на полезность признака, особенно в случаях, когда присутствуют нелинейные зависимости.
-
Отбор по важности признаков: Используйте алгоритмы, такие как случайные леса (Random Forest), которые могут предоставить важность признаков. Вы можете выбрать только те признаки, чья важность превышает определённый порог. Это не только уменьшит количество признаков, но и потенциально улучшит обобщающую способность модели.
-
Инженерия признаков: Обратите внимание на возможность создания новых признаков, комбинируя или преобразовывая уже существующие. Например, вы можете создавать взаимодействия между признаками или использовать полиномиальные признаки, что может помочь улучшить модель.
-
Методы отбора признаков: Примените такие методы, как рекурсивное исключение признаков (Recursive Feature Elimination, RFE) или последовательный отбор (Sequential Feature Selection). Оба метода помогают автоматически выбирать оптимальное количество признаков на основе кросс-валидации.
-
Критерии остановки: Используйте кросс-валидацию для проверки производительности модели с разными наборами признаков. Оптимальное количество признаков — это то, при котором производительность модели стабилизируется, а добавление очередного признака не приводит к значительному улучшению.
Арбитрарность выбора признаков
Количество выбранных признаков не является произвольным; оно должно основываться на анализе данных и производительности модели. Процесс должен быть систематическим и запланированным. Удаление признаков без должного анализа может привести к упущению значимой информации.
Оценка переобучения с помощью R² и RMSE
Использование R² и RMSE в качестве метрик для сравнения переобучения является общепринятой практикой:
-
R² (Коэффициент детерминации): Позволяет оценить, какая доля дисперсии целевой переменной объясняется моделью. Однако, высокая эффективность на обучающем наборе и значительное ухудшение на тестовом наборе могут сигнализировать о переобучении. В вашем случае значения R² различаются между обучающим и тестовым наборами, что указывает на проблемы с переобучением.
-
RMSE (Корень среднеквадратичной ошибки): Позволяет понять, насколько ваши предсказания отклоняются от реальных наблюдений. В вашем случае, разница между валидируемым и тестовым RMSE также указывает на возможность переобучения.
Заключение
В заключение, выбор признаков должен быть основан на тщательном анализе данных и методологии, а не на произвольных решениях. Используйте комбинацию корреляционного анализа, отбора по важности и методов автоматизации выбора признаков. Для оценки переобучения и производительности модели обязательно следите за R² и RMSE, осуществляя регулярные проверки на кросс-валидационных наборах. Это позволит вам создать более надежную и обобщающую модель для предсказания цен на жилье.