我正在尝试使用线性内核在 iris 数据集上拟合 SVM 模型(e1071 包)。模型拟合成功,但是在summary call中看不到gamma参数。
下面是代码:
#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
如何在摘要调用中查看 Gamma 参数?我需要安装特定的包来实现这个吗?请帮助您提出意见或意见。提前致谢。
您可以检查
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,具体取决于您的编辑器)以查看其中的内容。