[英]naive Bayes classification error 'non-numeric argument to mathematical function'
我在使用朴素貝葉斯設置文本分類時遇到問題。 首先,我有3個文本文件,兩個帶有好/壞詞的模板,一個測試文件。 根據之前的評級模板,創建了我的TermDocumentMatrix,並且我還有一個評級向量:
TDM word1 word2 word3 word4 ... rating
doc1 1 1 1 good
doc2 1 1 1 bad
doc3 ...
該向量未添加到TDM,因為我認為cbind
會將值轉換為character
。 因此,我將矩陣分為兩部分:
template_train <- complete_TDM[1:(x+y),]
text_test <- data.matrix(complete_TDM[((x+y+1):nrow(complete_TDM)),])
其中x
是良好評級模板的行數, y
是不良評級模板的行數。
random <- sample(x+y)
template_train <- data.matrix(template_train[random,]) ###shuffle
rating_vector <- as.factor(rating[random]) ###vector containing rating, shuffled the same way
然后創建一個naiveBayes模型:
naive_model <- naiveBayes(rating_vector~., x = template_train, y=rating_vector)
想預測
prediction <- predict(naive_model, text_test)
但是在最后一步,我收到一個錯誤:
> prediction <- predict(naive_model, text_test)
Error in log(sapply(seq_along(attribs), function(v) { :
non-numeric argument to mathematical function
提前致謝!
好的,我剛剛解決了這個問題,我現在使用data.matrix
代替我的評級向量的as.matrix
和as.factor
,但是現在我as.factor
了問題,一切都被評為不好,反之亦然。
> table(prediction, rating_vector)
rating_vector
prediction bad good
bad 0 95
good 94 0
你可以用
text_test = data.frame(text_test)
prediction <- predict(naive_model, text_test)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.