caret包应用之一:数据预处理惩罚
在举办数据挖掘时,我们会用到R中的许多扩展包,各自有差异的函数和成果。假如能将它们综合起来应用就会很利便。caret包(Classification and Regression Training)就是为了办理分类和回归问题的数据练习而建设的一个综合东西包。下面的例子环绕数据挖掘的几个焦点步调来说明其应用。
本例涉及到的数据是一个医学尝试数据,载入数据之后可以发明其样本数为528,自变量数为342,mdrrDescr为自变量数据框,mdrrClass为因变量。
library(caret)本例的样本数据所涉及到的变量很是多,需要对变量举办劈头降维。个中一种需要删除的变量是常数自变量,可能是方差极小的自变量,对应的呼吁是nearZeroVar,可以看到新数据集的自变量淘汰到了297个。
data(mdrr)
zerovar=nearZeroVar(mdrrDescr)另一类需要删除的是与其它自变量有很强相关性的变量,对应的呼吁是findcorrelation。自变量中尚有大概存在多重共线性问题,可以用findLinearCombos呼吁将它们找出来。这样处理惩罚后自变量淘汰为94个。
newdata1=mdrrDescr[,-zerovar]
descrCorr = cor(newdata1)我们还需要将数据举办尺度化并补足缺失值,这时可以用preProcess呼吁,缺省参数是尺度化数据,其高级成果还包罗用K近邻和装袋决定树两种要领来预测缺失值。另外它还可以举办cox幂调动和主身分提取。
highCorr = findCorrelation(descrCorr, 0.90)
newdata2 = newdata1[, -highCorr]
comboInfo = findLinearCombos(newdata2)
newdata2=newdata2[, -comboInfo$remove]
Process = preProcess(newdata2)最后是用createDataPartition将数据举办分别,分成75%的练习样本和25%检讨样本,雷同的呼吁还包罗了createResample用来举办简朴的自助法抽样,尚有createFolds来生成多重交错检讨样本。
newdata3 = predict(Process, newdata2)
inTrain = createDataPartition(mdrrClass, p = 3/4, list = FALSE)在建模前还可以对样本数据举办图形调查,譬喻对前两个变量绘制箱线图
trainx = newdata3[inTrain,]
testx = newdata3[-inTrain,]
trainy = mdrrClass[inTrain]
testy = mdrrClass[-inTrain]
featurePlot(trainx[,1:2],trainy,plot=’box’)