我有一些由99行数据组成的虚拟数据,一列是 自由文本数据和一列是cateogry。它已分为客户服务或非客户服务相关。
我将99行数据传递到我的R脚本中,创建了一个语料库,清理并解析了我的数据并将其转换为DocumentTermMatrix。然后,我将DTM转换为数据帧,以便于查看。我将类别绑定到我的新数据框。然后我把它分成50/50,这样50行进入我的训练集,49进入我的测试集。我也拿出了这个类别。
test
然后我创建了一个带有剥离类别列的模型,并将这个新模型传递给我的KNN
train <- sample(nrow(mat.df), ceiling(nrow(mat.df) * .5))
test <- (1:nrow(mat.df))[- train]
cl <- mat.df[, "category"]
然后我可以计算出准确度,生成交叉表或导出预测以测试模型的准确性。
我目前正在努力解决的问题是,我如何使用该模型继续推进新数据。
因此,如果我有10个新行的自由文本数据未经手动分类,我如何运行我刚创建的我的knn模型来对这些额外数据进行分类?
也许我只是误解了下一个过程。
谢谢,
答案 0 :(得分:0)
与刚刚发现保持测试性能的方式相同:
knn.pred.newdata <- knn(modeldata[train, ], completely_new_data, cl[train])
在KNN模型中,您的训练数据本质上是模型的一部分。由于它只是找到最近的训练点,如果你没有坐标,你怎么知道它们是哪些?
那说,你为什么要使用KNN模型而不是更现代的东西(SVM,随机森林,Boosted树,神经网络)? KNN模型的数据点数量极差。