我一直在使用e1071库来分类文本 . 我已经能够使用NB alogorithm但努力应用SVM . 我一直在关注Cran website的指南
该网站有一段代码,不解释对象类型以及如何为我自己的代码获取它 .
> svm
> svm.model <- svm(Type ~ ., data = trainset, cost = 100, gamma = 1)
> svm.pred <- predict(svm.model, testset[,-10])
My code:
library(e1071)
library(dplyr)
library(caret)
library(rpart)
df<- read.csv("C:/Users/Suki/Projects/RProject/tweets.csv", stringsAsFactors = FALSE)
trainSVM <- apply(dtm.train.svm, 2, convert_count)
testSVM <- apply(dtm.test.svm, 2, convert_count)
svm.model <- svm(Type~., data = trainSVM, cost = 100, gamma = 1)
svm.pred <- predict(svm.model, testSVM)
我找不到解释,但看到了另一个类似的例子 . 我是否正确相信“类型”是我希望SVM模型预测的?正如我到目前为止所做的那样,我不确定如何能够为SVM模型提供该信息 .
感谢您的时间和帮助 .
1 回答
Type ~ .
是将模型定义为"Values in column Type are dependent on values in all other columns"的公式 . 我们不考虑内置数据集iris
:假设我想根据所有其他列中的值预测
Species
列中的值 . 我可以将相应的模型定义为Species ~ .
. 或者,如果我只想使用某些列,我会将它们放在~
的右侧 . 例如,Species ~ Sepal.Length + Petal.Length
仅使用*Length
列 .现在我有了我的数据集和公式,我可以使用您在答案中提供的代码来训练我的SVM
出于演示目的,我们可以将模型应用回训练数据以检索预测
最后,请注意
svm
函数有另一种提供数据/标签的方法(看看?e1071::svm
) . 以下是训练模型的等效方法: