我在R中使用软件包e1071来构建一类SVM模型。我不知道该怎么做,在互联网上也找不到任何示例。

有人可以提供示例代码来表征,例如,使用一类分类模型来描述“ iris”数据集中的“ setosa”类,然后测试同一数据集中的所有示例(以检查哪些示例属于“ setosa”类的特征,还有哪些示例不是)?

最佳答案

我认为这是您想要的:

library(e1071)
data(iris)
df <- iris

df <- subset(df ,  Species=='setosa')  #choose only one of the classes

x <- subset(df, select = -Species) #make x variables
y <- df$Species #make y variable(dependent)
model <- svm(x, y,type='one-classification') #train an one-classification model


print(model)
summary(model) #print summary

# test on the whole set
pred <- predict(model, subset(iris, select=-Species)) #create predictions


输出:

-摘要:

> summary(model)

Call:
svm.default(x = x, y = y, type = "one-classification")


Parameters:
   SVM-Type:  one-classification
 SVM-Kernel:  radial
      gamma:  0.25
         nu:  0.5

Number of Support Vectors:  27




Number of Classes: 1


-预测(出于视觉原因,此处仅显示一些预测(其中Species =='setosa')):

> pred
    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20    21    22
 TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE
   23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44
FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
   45    46    47    48    49    50
FALSE  TRUE  TRUE  TRUE  TRUE  TRUE

关于r - 使用R中的SVM进行一类分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27375517/

10-12 20:17