【发布时间】:2018-06-17 10:56:54
【问题描述】:
我使用以下代码为两种类型(1 和 0)构建了 SVM 线性模型:
class1.svm.model <- svm(Class ~ ., data = training,cost=1,cross=10, metric="ROC",type="C-classification",kernel="linear",na.action=na.omit,probability = TRUE)
我已经使用以下代码提取了训练集的权重:
#extract the weights and constant from the SVM model:
w <- t(class1.svm.model$coefs) %*% class1.svm.model$SV;
b <- -1 * class1.svm.model$rho; #(sometimes called w0)
我得到每个特征的权重,如下例所示:
X2 0.001710949
X3 -0.002717934
X4 -0.001118897
X5 0.009280056
X993 -0.000256577
X1118 0
X1452 0.004280963
X2673 0.002971335
X4013 -0.004369505
现在如何根据为每个特征提取的权重执行特征选择?如何构建权重矩阵?
我读过论文,但概念对我来说还不是很清楚,请帮助!
【问题讨论】:
-
您可以选择最大权重的特征并在这些特征上再次运行模型。我不确定它会如何工作。我建议您使用相关性、pca 等技术。在 python 算法中,如随机森林具有属性 特征重要性。我不确定它是否在 R 中可用。
-
是的,我同意我需要选择最大重量来构建模型,但想知道选择最大重量来构建模型的临界值是多少
-
没有这样的硬引用值。你所能做的就是把所有的特征都拿走,然后把它们一一删除,而不是重要的特征。并停止在您获得最大准确度的地方(或任何您的绩效衡量标准)。
-
谢谢 :) 但我有一些权重是负数,有些权重是正数,这是否意味着我应该只考虑积极的权重?
标签: r svm feature-selection