如何解决包括scale= F作为插入符号列中preProcess的参数吗?
我正在处理分类问题。在我的数据处理过程中,我使用 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 步骤中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。