【发布时间】:2016-07-24 05:51:05
【问题描述】:
我正在通过应用 SVM、NB 和 kNN 来分析推文,以了解推文是正面、负面还是中性,为此我有 80704 条推文,但出于测试目的,我只分析 2847 条推文,它具有以下特征
> str(total.tweets.score)
'data.frame': 2847 obs. of 3 variables:
$ score : int 0 1 1 -2 0 0 1 2 -2 0 ...
$ text : Factor w/ 1790 levels " st century is the era of knowledge and information which will change the way countries develop says",..: 1717 129 996 1072 682 795 524 132 143 773 ...
$ Negative : Factor w/ 2 levels "FALSE","TRUE": 1 1 1 2 1 1 1 1 2 1 ...
问题是当我将数据分为训练数据和测试数据时,它适用于 SVM 和 NB,但是当我应用 kNN 时会出现错误,这是我拆分数据的方式,
total.tweets.score.train <- total.tweets.score[1:1993,]
total.tweets.score.test <- total.tweets.score[1994:2847, ]
SVM 模型:
model.SVm = svm(total.tweets.score.train$Negative~., data = total.tweets.score.train, kernel = "linear", epsilon = 0.1, probability = TRUE, type = "C")
NB 型号:
nb.classifier <- naiveBayes(twitter.train , total.tweets.score.train$Negative)
这里twitter.train 是文档术语矩阵。
kNN 模型:
model.knn <- knn(twitter.train, twitter.test , knn.train.data.target , k = 3, prob = TRUE)
这里twitter.train 和twitter.test 都是文档术语矩阵,而kn.train.data.target 是因子
当我运行 kNN 代码时,我收到以下错误,
Error in knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NA/NaN/Inf in foreign function call (arg 6)
In addition: Warning messages:
1: In knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NAs introduced by coercion
2: In knn(twitter.train, twitter.test, knn.train.data.target, k = 3, :
NAs introduced by coercion
请帮我怎么办?
【问题讨论】:
-
您的文档术语矩阵的结构是什么?你能发布结构和几行吗? (这是使您的问题可重现的唯一方法。谢谢。