Я пытаюсь классифицировать 94 текст речи. Поскольку naiveBayes не может работать хорошо, если категории trainset не существуют в категориях тестов, я рандомизирован и подтвержден. Не было проблем с категориями. Но классификатор не работал с набором тестов. Ниже сообщение об ошибке:ошибка наивных заливов в R: индекс за пределами
Df.dtm<-cbind(Df.dtm, category)
dim(Df.dtm)
Df.dtm[1:10, 530:532]
# Randomize and Split data by rownumber
train <- sample(nrow(Df.dtm), ceiling(nrow(Df.dtm) * .50))
test <- (1:nrow(Df.dtm))[- train]
# Isolate classifier
cl <- Df.dtm[, "category"]
> summary(cl[train])
dip eds ind pols
23 8 3 13
# Create model data and remove "category"
modeldata <- Df.dtm[,!colnames(Df.dtm) %in% "category"]
#Boolean feature Multinomial Naive Bayes
#Function to convert the word frequencies to yes and no labels
convert_count <- function(x) {
y <- ifelse(x > 0, 1,0)
y <- factor(y, levels=c(0,1), labels=c("No", "Yes"))
y
}
#Apply the convert_count function to get final training and testing DTMs
train.cc <- apply(modeldata[train, ], 2, convert_count)
test.cc <- apply(modeldata[test, ], 2, convert_count)
#Training the Naive Bayes Model
#Train the classifier
system.time(classifier <- naiveBayes(train.cc, cl[train], laplace = 1))
Этот классификатор работал хорошо: 用户 系统 流逝 0,45 0,00 0,46
#Use the classifier we built to make predictions on the test set.
system.time(pred <- predict(classifier, newdata=test.cc))
Однако предсказание не удалось. Ошибка в [.default
(объект $ таблицы [[v]], Н.Д.): 下 标出 界 Timing остановились: 0,2 0 0,2