我是R的新手,并为文档分类制作了简单的SVM模型。
library(tm)
library(e1071)
# my sample data
texts <-c("soccer",
"games",
"basketball",
"games games games games")
categories <- c("sports","e-sports", "sports", "e-sports")
# my sample dtm
dtm <- DocumentTermMatrix(Corpus(VectorSource(texts)))
df <- data.frame(categories, as.data.frame(inspect(dtm)))
# model based on sample data
model <- svm(categories~., data=df)
# new data to be classified
new <- c("soccer basketball games games games games")
dtm_n <- DocumentTermMatrix(Corpus(VectorSource(new)) )
inspect(dtm_n)
df_n <- as.data.frame(inspect(dtm_n))
# doing the prediction
predict(model, df_n)
假设我已经制作了这个简单的svm模型,并使用此模型来预测另一个随机文档。如果我运行它,我会
df_n <- as.data.frame(inspect(dtm_n))
<<DocumentTermMatrix (documents: 1, terms: 3)>>
Non-/sparse entries: 3/0
Sparsity : 0%
Maximal term length: 10
Weighting : term frequency (tf)
Sample :
Terms
Docs basketball games soccer
1 1 4 1
>
> predict(model, df_n)
1
sports
Levels: e-sports sports
不确定这个结果是如何结束的。
根据wikepedia的说法,svm就像 给定一组训练样例,每个训练样例都标记为属于两个类别中的一个或另一个,SVM训练算法构建一个模型,将新示例分配给一个类别或另一个类别。
然后,就我而言,我如何构建训练算法? 是否有一个好地方可以看到模型在R中实际设置和处理的方式?或者你能给我一个关于svm /预测过程的简短解释吗?
如果有人可以帮助我走上正轨,请给我一个建议。
感谢您阅读本文,并希望您度过美好的一天。