R e1071 SVM模型twitter分类

时间:2017-12-07 01:24:47

标签: r svm

我一直在使用e1071库来分类文本。我已经能够使用NB alogorithm但努力应用SVM。 我一直在关注Cran website

的指南

网站上有一段代码,不能解释对象类型以及如何为我自己的代码获取它。

POST

我的代码:

> svm
> svm.model <- svm(Type ~ ., data = trainset, cost = 100, gamma = 1)
> svm.pred <- predict(svm.model, testset[,-10])

我还没有找到解释,但看到了另一个类似的例子。我是否正确相信&#39; Type&#39;是我想要SVM模型预测的?正如我到目前为止所做的那样,我不确定如何能够为SVM模型提供该信息。

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

Type ~ .是一个将模型定义为“列中的值类型依赖于所有其他列中的值”的公式。我们无权访问您的数据文件,因此我们考虑一下内置数据集iris

head( iris )   ## Look at the first few rows of the data
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# ...

假设我想根据所有其他列中的值预测列Species中的值。我可以将相应的模型定义为Species ~ .。或者,如果我只想使用某些列,我会将它们放在~的右侧。例如,Species ~ Sepal.Length + Petal.Length仅使用*Length列。

现在我有了我的数据集和公式,我可以使用你在答案中提供的代码训练我的SVM

myModel <- e1071::svm( Species ~ ., data = iris )

出于演示目的,我们可以将模型应用回训练数据以检索预测

predict( myModel, iris )
#           1          2          3          4          5          6          7
#      setosa     setosa     setosa     setosa     setosa     setosa     setosa
#           8          9         10         11         12         13         14
#      setosa     setosa     setosa     setosa     setosa     setosa     setosa
# ...

最后,请注意svm函数提供了另一种提供数据/标签的方法(请查看?e1071::svm)。以下是训练模型的等效方法:

e1071::svm( iris[,1:4], iris[,5] )  # Predict Column 5 values from Column 1:4 values