我是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 /预测过程的简短解释吗?
如果有人可以帮助我走上正轨,请给我一个建议 .
感谢您阅读本文,并希望您度过美好的一天 .