我想知道是否有办法从e1071
包中获取svmLinear方法中的所有系数和p值。我试过了summary(modelname)
但是没有用。
以下是我的svm模型的代码,其中包含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-logistic回归得到它们:
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 **
如果有人能给我一个方法,我会很高兴,非常感谢!
答案 0 :(得分:0)
SVM 不假设概率模型,因此没有标准误差或 p。价值。
不过,您可以获得系数。在 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])
如果您只有二维特征,您可以使用以下方法绘制分隔线:
w
对于多类来说有点棘手。您可以查看 my answer here 以获得如何从 coefs 和 SV 中提取 b
和 <div class="container">
<div class="row">
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
</div>
</div>
的详细说明。