如何在支持向量机中找到重要因素
how to find important factors in support vector machine
原数据量大,这里post没办法。
问题是我使用 R 中的包 e1071 进行支持向量机分析。
原始数据有100个因子,预测结果为1或0。
例如,我生成一个包含 10 个因子的随机数据框。
for (i in 1:10){
factor<-c(factor,runif(10,5,10))
}
value<-matrix(factor,nrow=10)
y<-sample(0:1,10,replace=T)
data<-as.data.frame(cbind(y,value))
我做了预测,但我想知道如何确定哪些因素(在 10 个因素中)对结果重要(更相关)。
例如,结果可能是因素 2、4、5 和 10 对最终结果有贡献。
你能帮我解决这个问题吗?
非常感谢。
要完整回答这个问题并不简单。下面是这个主题的入门示例:
library(rpart)
library(e1071)
cat('Regression tree case:\n')
fit1 <- rpart(Species ~ ., data=iris)
print(fit1$variable.importance)
cat('SVM model case:\n')
fit2 <- svm(Species ~ ., data = iris)
w <- t(fit2$coefs) %*% fit2$SV # weight vectors
w <- apply(w, 2, function(v){sqrt(sum(v^2))}) # weight
w <- sort(w, decreasing = T)
print(w)
上面脚本的结果是:
Regression tree case:
Petal.Width Petal.Length Sepal.Length Sepal.Width
88.96940 81.34496 54.09606 36.01309
SVM model case:
Petal.Length Petal.Width Sepal.Length Sepal.Width
12.160093 11.737364 6.623965 4.722632
可以看到两个模型的结果变量重要性是差不多的。
这是解释 SVM 结果的众多方法之一。
有关详细信息,请参阅以下论文:"An Introduction to Variable and Feature Selection"、http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
原数据量大,这里post没办法。 问题是我使用 R 中的包 e1071 进行支持向量机分析。 原始数据有100个因子,预测结果为1或0。 例如,我生成一个包含 10 个因子的随机数据框。
for (i in 1:10){
factor<-c(factor,runif(10,5,10))
}
value<-matrix(factor,nrow=10)
y<-sample(0:1,10,replace=T)
data<-as.data.frame(cbind(y,value))
我做了预测,但我想知道如何确定哪些因素(在 10 个因素中)对结果重要(更相关)。
例如,结果可能是因素 2、4、5 和 10 对最终结果有贡献。
你能帮我解决这个问题吗? 非常感谢。
要完整回答这个问题并不简单。下面是这个主题的入门示例:
library(rpart)
library(e1071)
cat('Regression tree case:\n')
fit1 <- rpart(Species ~ ., data=iris)
print(fit1$variable.importance)
cat('SVM model case:\n')
fit2 <- svm(Species ~ ., data = iris)
w <- t(fit2$coefs) %*% fit2$SV # weight vectors
w <- apply(w, 2, function(v){sqrt(sum(v^2))}) # weight
w <- sort(w, decreasing = T)
print(w)
上面脚本的结果是:
Regression tree case:
Petal.Width Petal.Length Sepal.Length Sepal.Width
88.96940 81.34496 54.09606 36.01309
SVM model case:
Petal.Length Petal.Width Sepal.Length Sepal.Width
12.160093 11.737364 6.623965 4.722632
可以看到两个模型的结果变量重要性是差不多的。
这是解释 SVM 结果的众多方法之一。
有关详细信息,请参阅以下论文:"An Introduction to Variable and Feature Selection"、http://jmlr.csail.mit.edu/papers/v3/guyon03a.html