从插入包中预处理

时间:2017-03-20 03:47:44

标签: r machine-learning classification

我为狮子狗或炸鸡的每个灰度图像提供了5000个SIFT功能,并要求建立一个分类模型。

我在筛选功能矩阵上运行了preProcess函数:

mat1=preProcess(mat, method=c("pca", "zv"))

我得到的是“预处理”类,我不知道如何在以下函数调用中使用此对象mat1

model_gbm <- train(ensembleData[,predictors], ensembleData[,labelName], method='gbm',  trControl=myControl)

ensembleData [,predictors]用于包含筛选功能的特征部分,而ensembleData [,labelName]包含数据的实际类(0或1)。

我考虑过在preProcess函数中使用train函数,但我希望能够在其他模型的其他地方使用相同的预处理数据。

谢谢!

1 个答案:

答案 0 :(得分:2)

根据caret documentation

  

函数preProcess估计每个操作所需的参数,predict.preProcess用于将它们应用于特定的数据集

因此您需要将估计参数应用于您的数据,如下所示:

mat1=preProcess(mat, method=c("pca", "zv"))
transformed = predict(mat1, mat)
model_gbm <- train(data=transformed, method='gbm',  trControl=myControl)