Сообщение об ошибке предсказания модели CART (дерево классификации и регрессии) в R говорит о том, что поставлено больше элементов, чем должно быть - PullRequest
0 голосов
/ 06 марта 2020

Я застрял на модели CART в R. Мой набор данных имеет около 7000 строк, 50 столбцов. Я разделил набор данных на 75% тренировочных и 25% тестовых данных, поэтому в моем тренировочном наборе 5658 строк, а в тестовом наборе 1886 строк.

Сначала я создал модель CART с несколькими функциями в наборе обучающих данных, которые прошел и дерево выглядело все хорошо. Затем я попытался применить эту модель к данным тестирования, но сообщение об ошибке всегда показывалось, как показано ниже, когда выполнялась самая последняя строка кода. Я также приложил снимок экрана.

library(dplyr)
set.seed(111)
cart_sample <- sample.int(n = nrow(cart), size = floor(.75*nrow(cart)), replace = F)
cart_train <- cart[cart_sample, ]
cart_test  <- cart[-cart_sample, ]

# Build the model1
# Set cp = 0.01
library(rpart)
library(rpart.plot)

model1 <- price ~ neighbourhood_group + property_type + room_type + accommodates + bedrooms + bathrooms + amenities_ac + amenities_petsallowed + amenities_freeparking
tree1 <- rpart(formula = model1, data = cart_train, control = rpart.control(cp = 0.01))
rpart.plot(tree1)

# Predict using test dataset
cart_test$pred1_price <- predict(tree1, data = cart_test)

Ошибка в наборе (x, j = имя, значение = значение): предоставлено 5658 элементов для назначения 1886 элементам столбца pred1_price. Если вы хотите sh перезапустить RHS, пожалуйста, используйте rep (), чтобы прояснить это намерение читателям вашего кода.

скриншот кода и сообщения об ошибке

Я не понимаю, почему возникает ошибка. Размер, тренировочный набор и тестовый набор не должны быть одинаковыми. Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...