Как масштабировать новые наблюдения для прогнозирования, когда модель снабжена масштабированными данными?


13

Я понимаю концепцию масштабирования матрицы данных для использования в модели линейной регрессии. Например, в R вы можете использовать:

scaled.data <- scale(data, scale=TRUE)

Мой единственный вопрос: для новых наблюдений, для которых я хочу предсказать выходные значения, как они правильно масштабируются? Это будет scaled.new <- (new - mean(data)) / std(data)?


1
Чтобы вернуть значения, просто сделайте это y = y_esc * sd(y) + mean(y), но я думаю, что это испортит свойства модели, поэтому я также жду более технического ответа!
Фернандо

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

Ответы:


13

Короткий ответ на ваш вопрос: да, это выражение для scaled.new является правильным (за исключением того, что вы хотели sdвместо std).

Возможно, стоит отметить, что у масштаба есть необязательные аргументы, которые вы можете использовать:

scaled.new <- scale(new, center = mean(data), scale = sd(data))

Кроме того, объект, возвращаемый функцией scale (scaled.data), имеет атрибуты, содержащие числовое центрирование и используемые масштабирования (если есть), которые вы можете использовать:

scaled.new <- scale(new, attr(scaled.data, "scaled:center"), attr(scaled.data, "scaled:scale"))

Преимущество этого проявляется, когда исходные данные имеют более одного столбца, поэтому необходимо учитывать несколько средних и / или стандартных отклонений.


Хотелось бы, чтобы был немного более простой способ сделать это, напримерscaled.new <- scale(new, use.attrs = scaled.data)
слова для этого

@wordsforthewise Для этого не составит труда написать обертку для scale.default. Сомневаюсь, что R-core отдаст ему высокий приоритет.
user20637

Да. Если я смогу понять, как внести свой вклад в R-core и найти время для этого, я мог бы это сделать.
словами,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.