Отредактированный вопрос:
У меня есть набор данных из 699 строк, и в упражнении, над которым я работаю, мне предлагается создать обучающий набор из 300 наблюдений. Остальное будет тестовым набором. Я записываю всю возможную информацию, чтобы сделать ситуацию как можно более понятной.
#First part of the code & Preprocessing
attach(Cancer_data)
names(Cancer_data)[1] <- "id"
names(Cancer_data)[2] <- "thickness"
names(Cancer_data)[3] <- "unif.size"
names(Cancer_data)[4] <- "unif.shape"
names(Cancer_data)[5] <- "adhesion"
names(Cancer_data)[6] <- "size"
names(Cancer_data)[7] <- "nuclei"
names(Cancer_data)[8] <- "chromatin"
names(Cancer_data)[9] <- "nucleoli"
names(Cancer_data)[10] <- "mitoses"
names(Cancer_data)[11] <- "Prognosis"
#Prognosis are my class labels 2 for benign cancer 4 for malignant
Prognosis <- as.factor(Cancer_data$Prognosis)
Cancer_data <- Cancer_data %>% dplyr :: select(-id)
Переходя непосредственно к модели rpart, избегая перезаписи разделения данных, что достаточно ясно, я реализую эту модель дерева классификации с r part
rpart_model <- rpart(Prognosis ~.,method = "class",data = train_set)
#The train_set was implemented before with caret:: createDataPrtition()
Теперь это главная проблема, потому что когда я прогнозирую производительность дерева на test_set и пытаюсь получить путаницу, Matrix R возвращает мне эту ошибку:
Error: `data` and `reference` should be factors with the same levels.
здесь реализованный код
y_hat <- predict(rpart_model,test_set)
confusionMatrix(Cancer_data$Prognosis,y_hat)
Я также пытался
y_hat <- predict(rpart_model,type ='class')
, как это было предложено в предыдущем Пост
Я прошу прощения за длину вопроса, но я предпочел быть как можно более точным. Заранее спасибо