gpt4 book ai didi

r - 如何在 R 中获取 SVM 模型的系数和 p 值

转载 作者:行者123 更新时间:2023-12-05 07:37:59 27 4
gpt4 key购买 nike

我想知道是否有办法从 e1071 包中获取 svmLinear 方法中的所有系数和 p 值。我尝试了 summary(modelname) 但没有用。下面是带有 10 折交叉验证的支持向量机模型的代码:

library("e1071")
library("caret")
load(df) ## my dataset
ctrl <- trainControl(method = "repeatedcv", number = 10, savePredictions = TRUE) ## 10 fold cross validation
fitsvm <- train(Attrition ~., data=df, method = "svmLinear", trControl = ctrl) ##train model

summary (fitsvm)

Length Class Mode
1 ksvm S4

我可以用 glm - 逻辑回归得到它们:

fit <- train(Attrition ~., data= df, method="glm", family="binomial", trControl= tc)
summary(fit)

Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.424e+00 1.254e+00 2.731 0.006318 **

如果有人能告诉我一个方法,我会很高兴,非常感谢!

最佳答案

SVM 不假设概率模型,因此不存在标准误差或 p。值(value)观。

不过,您可以获得系数。在 e1071 包中,alpha*y 存储在 fit$coefs 中,支持向量存储在 fit$ 中SV。你必须小心如何提取它们。如果您只有二元分类,则分离平面的系数 b+w1*x1+w2*x2+...=0 很简单:

w = t(fit$SV) %*% fit$coefs
b = -fit$rho

如果您只有二维特征,您可以使用以下方法绘制分隔线:

abline(-b/w[2], -w[1]/w[2])

对于多类来说有点棘手。你可以查看my answer here有关如何从系数和 SV 中提取 wb 的详细说明。

关于r - 如何在 R 中获取 SVM 模型的系数和 p 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48266766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com