【发布时间】:2016-01-04 23:25:38
【问题描述】:
大家晚上好!
我在 R 中遇到了一个问题。我有一个包含 Amazon 对 Playstation 4 的评论的数据集,我想在 rpart 的帮助下创建一个预测模型,并且还想拥有该模型的准确性。
评论已成功加载到 R,已创建语料库并已应用一些预处理任务:
library(RWeka)
library(tm)
library(rpart)
corpus <- Corpus(VectorSource(tr.review.ps4$reviewText))
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, PlainTextDocument)
corpus <- tm_map(corpus, removeWords, stopwords('english'))
corpus <- tm_map(corpus, stemDocument)
使用以下代码创建二元组和术语文档矩阵:
BigramTokenizer <- function(x) {RWeka::NGramTokenizer(x, RWeka::Weka_control(min = 2, max = 2))}
txtTdmBi <- TermDocumentMatrix(corpus, control = list(tokenize = BigramTokenizer, bounds = list(global=c(10, Inf))))
然后删除稀疏项并创建一个矩阵:
dtm <- removeSparseTerms(txtTdmBi, 0.999)
dtmsparse <- as.data.frame(as.matrix(txtTdmBi))
原始数据集包含 7561 个对象。因此,创建一个训练和测试集如下:
train <- dtmsparse[1:6500,]
test <- dtmsparse[6501:7561,]
那么训练就完成了。 $overall 是指从一到五的星级。
train$overall <- tr.review.ps4[1:6500,]$overall
当使用一元组时,预测模型的创建如下:
model <- rpart(overall ~., data = train, method= 'class')
但是,这在我的情况下不起作用,因为 - 我猜 - 必须建立与原始评论数据集的连接。但是怎么做?我不知道。
当我输入此代码时,我得到以下错误输出:
terms.formula(formula, data = data) 中的错误:
谁能帮帮我?非常感谢。
最好的问候 保罗
【问题讨论】:
标签: rpart