R中的支持向量机特征选择示例
Posted
技术标签:
【中文标题】R中的支持向量机特征选择示例【英文标题】:Example for svm feature selection in R 【发布时间】:2013-07-05 22:57:27 【问题描述】:我正在尝试使用 R 包在 SVM 中应用特征选择(例如递归特征选择)。我已经安装了支持 LibSVM 中的特征选择的 Weka,但我还没有找到任何关于 SVM 或类似语法的示例。一个简短的例子会很有帮助。
【问题讨论】:
【参考方案1】:caret
包中的函数rfe
为各种算法执行递归特征选择。这是来自caret
documentation 的示例:
library(caret)
data(BloodBrain, package="caret")
x <- scale(bbbDescr[,-nearZeroVar(bbbDescr)])
x <- x[, -findCorrelation(cor(x), .8)]
x <- as.data.frame(x)
svmProfile <- rfe(x, logBBB,
sizes = c(2, 5, 10, 20),
rfeControl = rfeControl(functions = caretFuncs,
number = 200),
## pass options to train()
method = "svmRadial")
# Here's what your results look like (this can take some time)
> svmProfile
Recursive feature selection
Outer resampling method: Bootstrap (200 reps)
Resampling performance over subset size:
Variables RMSE Rsquared RMSESD RsquaredSD Selected
2 0.6106 0.4013 0.05581 0.08162
5 0.5689 0.4777 0.05305 0.07665
10 0.5510 0.5086 0.05253 0.07222
20 0.5203 0.5628 0.04892 0.06721
71 0.5202 0.5630 0.04911 0.06703 *
The top 5 variables (out of 71):
fpsa3, tcsa, prx, tcpa, most_positive_charge
【讨论】:
这里的sizes = c(2, 5, 10, 20)
是什么?这是否意味着特征 2、10 和 20?
@Mahsolid 不,这是将使用的功能数量。 rfe 将尝试找到该向量中给定的每个大小的最佳模型。查看 rfe 文档了解更多详情。
@DavidMarx 感谢您的解释。 rfe()
函数调用中的number = 200
是什么意思?以上是关于R中的支持向量机特征选择示例的主要内容,如果未能解决你的问题,请参考以下文章