如何解决model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) 中的错误:对象不是矩阵
我正在研究定性数据的分类模型 (SVM),数据已下载到 UCI 存储库中。这是所用数据集的 link,它已被拆分为训练集和测试集,我的问题是我已经拟合了一个模型,但我无法在测试数据集上预测我的模型 (review_ted_model)。任何人都可以帮助我解决错误,因为我受够了,好吗?
这就是我遇到的问题。
```
predict_svm_rbf <- predict(review_ted_model,newdata = test)
Error in model.frame.default(Terms,newdata,na.action = na.action,xlev = object$xlevels) :
object is not a matrix
In addition: Warning message:
'newdata' had 53766 rows but variable found had 1 row
```
代码的输出太多了,我无法复制到这里。 这些是已经尝试过的代码,除了上面已经说明的最后一行代码外,它们运行得很好。
library(caret)
library(mlbench)
library(tidyverse)
library(tidytext)
library(data.table)
train=as.data.frame(fread("drugsComTrain_raw.tsv"))
test=as.data.frame(fread("drugsComTest_raw.tsv"))
train %>% head()
summary(train)
str(train)
nrow(train)
train[duplicated(train)|duplicated(train,fromLast = T),]
sapply(train,function(x) sum(is.na(x)))
#Finding the total count of missing values.
sum(!complete.cases(train))
head(train)
train <- train %>% mutate(document = row_number())
train$condition <- as.character(train$condition)
train$review <- as.character(train$review)
train$drugName <- as.character(train$drugName)
summary(train)
str(train)
trainText <- train %>%
unnest_tokens(word,review) %>%
anti_join(stop_words)
length(unique(trainText$drugName))
unique(trainText$drugName)
abc = trainText[which(trainText$drugName %in% c("Methadose","Didrex","Forteo","Kava")),]
abc
abc %>%
count(word,drugName,sort = TRUE) %>%
mutate(drugName = factor(drugName),word = as.factor(word),word = fct_reorder(word,n)
) %>%
group_by(drugName) %>%
top_n(10) %>%
ungroup() %>%
ggplot(aes(word,n)) +
geom_col(aes(fill = drugName)) +
facet_wrap(~drugName,scales = "free") +
coord_flip()
View(abc)
abc
library(caret)
library(LiblineaR)
review_ted_model <- train(condition ~ word,data = abc,method = "svmLinear3")
plot(review_ted_model)
View(test)
predict_svm_rbf <- predict(review_ted_model,newdata = test)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。