在R中的汇总调用中不给出Gamma值的SVM模型

olmpazwi  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(141)

我试图用线性核函数在虹膜数据集上拟合SVM模型(e1071包)。模型拟合成功,但在汇总调用中看不到伽马参数。
下面是代码:

#load iris data
data(iris) 
head(iris)
table(iris$Species)
iris = iris[,c(3:5)]
str(iris)
model = svm(Species~.,data = iris, kernel = "linear")
summary(model)
data(iris) #load iris data
head(iris)
  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
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
table(iris$Species)

    setosa versicolor  virginica 
        50         50         50 
iris = iris[,c(3:5)]
str(iris)
'data.frame':   150 obs. of  3 variables:
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
model = svm(Species~.,data = iris, kernel = "linear")
summary(model)

Call:
svm(formula = Species ~ ., data = iris, kernel = "linear")

Parameters:
   SVM-Type:  C-classification 
 SVM-Kernel:  linear 
       cost:  1 

Number of Support Vectors:  31

 ( 3 15 13 )

Number of Classes:  3 

Levels: 
 setosa versicolor virginica

如何在Summary调用中查看Gamma参数??我是否需要安装特定的软件包才能实现此功能??请提供您的观点或意见。先谢谢你了。

vh0rcniy

vh0rcniy1#

您可以检查summary专门为class svm的对象生成的内容,如下所示:

svm(Species~.,data = iris, kernel = "linear") |>
  summary() |>
  str()

这是一个很大的数目(30个项目),所以包开发人员必须决定哪些项目实际上被打印出来。
str结构的上半部分揭示了gamma确实是svm摘要提供的项目之一(尽管没有打印出来):

List of 30
 $ call           : language svm(formula = Species ~ ., data = iris, kernel = "linear")
 $ type           : num 0
 $ kernel         : num 0
 $ cost           : num 1
 $ degree         : num 3
 $ gamma          : num 0.5

因此,您可以在飞行中提取它:

summary(model)$gamma

或者,如果不确定项目的名称,请保存您的摘要(the_summary <- summary(model)),然后键入the_summary$并使用自动完成建议(例如通过按TAB键两次,这取决于您的编辑器)来查看其中的内容。

相关问题