【问题标题】:How to extract components after performing principal component regression for further analysis in R caret package如何在执行主成分回归后提取成分以在 R 插入符号包中进行进一步分析
【发布时间】:2013-12-28 15:03:54
【问题描述】:

我有一个包含 151 个变量的数据集,这些变量被发现具有很高的共线性,因此我通过执行以下操作对其进行了主成分回归:-

ctrl <- trainControl(method = "repeatedcv", repeats = 10, savePred = T)
model <- train(RT..seconds.~., data = cadets100, method = "pcr", trControl = ctrl)

这给了我:- RMSE = 65.7 R 平方 0.443

我只是想知道之后我是如何提取这些组件的,以便我可以说应用进一步分析(即对其执行 SVM 或随机森林)

【问题讨论】:

    标签: pca r-caret


    【解决方案1】:

    如果你想在你的 PC 分数之上做 SVM、RF 或任何第二个分类器,那么有一个捷径,而不是试图重新发明 caret 包。

    您可以执行以下操作:

    set.seed(1)
    sigDist <- sigest(RT..seconds.~., data = cadets100, frac = 1)
    
    svmGrid <- expand.grid(.sigma = sigDist, .C = 2^(-2:7))
    set.seed(2)
    svmPCAFit <- train(RT..seconds.~.,
                      method = "svmRadial",
                      tuneGrid = svmrGrid,                  
                      preProcess = c("center","scale","pca"), # if center and scale needed
                      trControl = ctrl)
    

    这样,pca 将在每一折测试中完成,并且将使用分数而不是 SVM 分类器的观察值。所以你不需要自己做,插入符号会自动为你做。您在 preProcess 中传递的所有内容都将应用于新数据集,无论是 CV 折叠测试还是拟合保持测试集。

    但是,如果您想在将分数传递给下一个分类器之前执行 PLS,这是一种与 PCA 相对的监督方法,那么您必须在插入符号中自定义此类模型(请参阅here)。更多的例子你可以研究代码here,在那里你会发现两个定制模型,一个用于PLS-RF,一个用于PLS-LDA。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 2013-03-18
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多