разница между аргументами data и newdata при прогнозировании

#r #predict

Вопрос:

При прогнозировании в R, используя predict() функцию, аргумент для данных, по которым мы хотим предсказать, равен newdata = . Мой вопрос в том, когда ставить data = вместо newdata = того, что происходит ? Потому что это не дает ошибки, и полученный rmse не совпадает при использовании newdata =

Вот пример:

 library(MASS) set.seed(18) Boston_idx = sample(1:nrow(Boston), nrow(Boston) / 2)  Boston_train = Boston[Boston_idx,] Boston_test = Boston[-Boston_idx,]  library(rpart) Boston_treelt;-rpart(medv~., data=Boston_train) tree.pred lt;- predict(Boston_tree, data=Boston_test) tree.pred2 lt;- predict(Boston_tree, newdata=Boston_test)  rmse = function(m, o){  sqrt(mean((m - o)^2)) }  rmse(tree.pred,Boston_test$medv) rmse(tree.pred2,Boston_test$medv)  

Ответ №1:

data являются ли данные, используемые для подгонки модели, newdata данными, используемыми для прогнозирования. На странице справки ?predict.rpart говорится:

newdata : фрейм данных, содержащий значения, при которых требуются прогнозы. Предикторы, указанные в правой части formula(object) , должны присутствовать по имени в newdata . Если отсутствует, возвращаются соответствующие значения.

Комментарии:

1. Итак, возвращены соответствующие значения. И вот случайно в моем примере в обучающих и тестовых наборах есть одинаковое количество выборок. Я бы предпочел педагогически, если predit() возвращает ошибку, если newdata отсутствует.

2. Другой студент только что написал predict(Boston_tree, new_data = Boston_test) . Он хочет знать, почему его rmse отличается от коллег.