R - 如何设置特定数量的 PCA 组件来训练预测模型
R - how to set a specific number of PCA components to train a prediction model
我想使用 train() 和 preProcess() 构建一个预测模型,使用 PCA 并将前 7 个主要成分作为我的预测变量。
以下有效,但我无法指定 PC 的数量:
predModel2 <- train(diagnosis~., data=training2, method = "glm", preProcess = "pca")
我试过这个来指定 PC 的数量,但我不知道如何将它合并到 train() 中:
training_pre<-preProcess(training[,ILcols],method = c("center", "scale", "pca"),pcaComp= 7)
我试过使用:
predModel2 <- train(diagnosis~., data=training2, method = "glm", preProcess = "pca", pcaComp=7)
Error in train.default(x, y, weights = w, ...) : Stopping
更新:
看来我首先使用 predict() 来解决这个问题:
training2_pca<-predict(training_pre,training2_pca)
train(diagnosis~., data=training2_pca, method = "glm")
所有预处理都应在训练折叠内完成,或者在本例中为重新采样。这会阻止 'data leaks',因此应该首选上述方法中的第一种,例如参见this question.
pcaComp
参数进入 trainControl()
。以鸢尾花数据、KNN和前两个主成分为例:
predModel2 <- train(Species~., data=iris, method = "knn", preProcess = "pca",
trControl = trainControl(preProcOptions = list(pcaComp = 2)))
我想使用 train() 和 preProcess() 构建一个预测模型,使用 PCA 并将前 7 个主要成分作为我的预测变量。
以下有效,但我无法指定 PC 的数量:
predModel2 <- train(diagnosis~., data=training2, method = "glm", preProcess = "pca")
我试过这个来指定 PC 的数量,但我不知道如何将它合并到 train() 中:
training_pre<-preProcess(training[,ILcols],method = c("center", "scale", "pca"),pcaComp= 7)
我试过使用:
predModel2 <- train(diagnosis~., data=training2, method = "glm", preProcess = "pca", pcaComp=7)
Error in train.default(x, y, weights = w, ...) : Stopping
更新: 看来我首先使用 predict() 来解决这个问题:
training2_pca<-predict(training_pre,training2_pca)
train(diagnosis~., data=training2_pca, method = "glm")
所有预处理都应在训练折叠内完成,或者在本例中为重新采样。这会阻止 'data leaks',因此应该首选上述方法中的第一种,例如参见this question.
pcaComp
参数进入 trainControl()
。以鸢尾花数据、KNN和前两个主成分为例:
predModel2 <- train(Species~., data=iris, method = "knn", preProcess = "pca",
trControl = trainControl(preProcOptions = list(pcaComp = 2)))