#r #machine-learning #regression #supervised-learning
#r #машинное обучение #регрессия #контролируемое обучение
Вопрос:
Профессор хотел, чтобы мы выполнили 10-кратную перекрестную проверку набора данных, чтобы получить наименьший RMSE, и использовали коэффициенты этого для создания функции, которая принимает параметры, прогнозирует и возвращает показатель «Коэффициент пригодности», который находится в диапазоне 25-75.
Он посоветовал нам попробовать преобразовать данные, что я и сделал. Я использовал scale() для всего набора данных, чтобы стандартизировать его, а затем выполнил регрессию и 10-кратную перекрестную проверку. Затем я нашел нужную модель и скопировал коэффициенты. Проблема в том, что мои прогнозы функций далеки от истины, когда я ввожу в него нестандартизированные параметры для прогнозирования y.
Я полностью испортил это, стандартизируя данные до среднего значения 0 и sd, равного 1? Могу ли я как-нибудь исправить этот беспорядок, если я все-таки облажался?
Мои коэффициенты — это чрезвычайно маленькие числа, и я чувствую, что сделал что-то не так здесь.
Комментарии:
1. Может быть, лучше на stats.stackexchange.com
2. Очевидно, что вам нужно преобразовать ваши коэффициенты обратно, прежде чем применять их к нетрансформированным данным (или вам нужно преобразовать ваши данные, применить коэффициенты и преобразовать их обратно)
3. Вы преобразовали набор тестов на основе коэффициентов преобразования, вычисленных в наборе поездов?
Ответ №1:
Создайте правильный конвейер, а не просто взлом с некоторыми функциями R.
Проблема в том, что вы рассматриваете масштабирование как часть загрузки данных, а не как часть процесса прогнозирования.
Надлежащий протокол заключается в следующем:
- «Изучите» параметры преобразования
- Преобразуйте учебные данные
- Обучите модель
- Преобразуйте новые данные
- Предсказать значение
- Обратное преобразование прогнозируемого значения
Во время перекрестной проверки их необходимо выполнять отдельно для каждого сгиба, иначе вы можете переоценивать (переобучать) свое качество.
Стандартизация — это линейное преобразование, поэтому найти обратное тривиально.