我想知道是否有一种方法可以从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 **
如果有人能给我指路,我会很高兴的,谢谢!
1条答案
按热度按时间x6492ojm1#
SVM不假设概率模型,因此没有标准误差或p值。
但是,您可以获得系数。在
e1071
包中,alpha*y
存储在fit$coefs
中,而支持向量存储在fit$SV
中。您必须小心如何提取它们。如果您只有二元分类,则分离平面b+w1*x1+w2*x2+...=0
的系数简单地为:如果只有2D特征,可使用以下方法绘制分隔线:
对于多类来说就有点棘手了,你可以查看my answer here来获得如何从coefs和SV中提取
w
和b
的详细说明。