通过R语言进行机器学习中的特征选择
特征选择是实用机器学习的重要一步,一般数据集都带有太多的特征用于模型构建,如何找出有用特征是值得关注的重要内容。
基于caret包,使用递归特征消除法,其中rfe参数如下:
- x,预测变量的矩阵或数据框
- y,输出结果向量(数值型或因子型)
- sizes,用于测试的特定子集大小的整型向量
- rfeControl,用于指定预测模型和方法的一系列选项
一些列函数可以用于rfeControl$functions,包括:线性回归(lmFuncs),随机森林(rfFuncs),朴素贝叶斯(nbFuncs),bagged trees(treebagFuncs)和可以用于caret的train函数的函数(caretFuncs)。
移除冗余特征,移除高度关联的特征
set.seed(1234)
library(mlbench)
library(caret)
data(PimaIndiansDiabetes)
Matrix <- PimaIndiansDiabetes[,1:8]
library(Hmisc)
up_CorMatrix <- function(cor,p) {ut <- upper.tri(cor)
data.frame(row = rownames(cor)[row(cor)[ut]] ,
column = rownames(cor)[col(cor)[ut]],
co