KNA的PCA:插入符号中的预处理参数

问题描述 投票:0回答:1

我正在对我的数据进行knn回归,并希望:

a)通过重复交叉验证以找到最佳的k;

b)在建立knn模型时,使用90%水平阈值的PCA来降低维数。

library(caret)
library(dplyr)
set.seed(0)
data = cbind(rnorm(15, 100, 10), matrix(rnorm(300, 10, 5), ncol = 20)) %>% 
  data.frame()

colnames(data) = c('True', paste0('Day',1:20))
tr = data[1:10, ] #training set
tt = data[11:15,] #test set

train.control = trainControl(method = "repeatedcv", number = 5, repeats=3)
k = train(True ~ .,
          method     = "knn",
          tuneGrid   = expand.grid(k = 1:10),
          trControl  = train.control, 
          preProcess = c('scale','pca'),
          metric     = "RMSE",
          data       = tr)

我的问题是:目前PCA阈值默认为95%(不确定),如何将其更改为80%?

r machine-learning pca knn feature-selection
1个回答
0
投票

您可以尝试在trainControl中添加preProcOptions参数

train.control = trainControl(method = "repeatedcv", number = 5, repeats=3, preProcOptions = list(thresh = 0.80))
© www.soinside.com 2019 - 2024. All rights reserved.