问题描述
我正在处理分类问题。在我的数据处理过程中,我使用 bestnormalize()估计了向正态性的最佳转换。在此步骤中,我将所有预测变量标准化。
我将PCA用作预处理步骤,以在训练步骤中对数据进行解相关。我无法包含其他参数 scale。= F 以防止数据再次标准化。插入符号文档指出“如果请求PCA,但不要求居中和缩放,则值仍将居中和缩放。” 。我要问的是,两次标准化是否会引起问题,以及如何在预处理步骤中使用PCA而不再次标准化预测变量。
我相信以下内容无效
my_ctrl <- trainControl(method='repeatedcv',number=5,repeats=5,search='grid',preProcoptions = list(thresh=0.95,scale.=F),#including scale argument via preProcoptions
classprobs = T,summaryFunction = twoClassSummary,savePredictions=T,index=createResample(y_train,5))
lg <- train(y=y_train,x=X_train,method='glm',trControl=my_ctrl,preProcess='pca',metric="ROC",family="binomial")
解决方法
PCA有两种流行的方式:prcomp(x,scale = FALSE)
和princomp(x,cor = FALSE,scores = TRUE)
也许您可以尝试这些方法中的一种,因此您无需进行两次标准化。 此外,如果两次标准化,这也不成问题,因为第二次预测变量已经标准化,因此不会发生任何事情。
如果这有帮助,请告诉我:)
,您可能考虑的另一种解决方案是通过将 bestNormalize
设置为选项来告诉 standardize = FALSE
不要标准化。您不会进行双重标准化,因为标准化会发生在后面的 PCA 步骤中。