在R中使用交叉验证选择主成分数

在R中使用交叉验证选择主成分数,r,cross-validation,R,Cross Validation,我从UCI网站上传了数据,准备好数据后,我使用内置函数prcomp进行了PCA。 数据的维数为(569)(32)。这是我的数据 Data<- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data",sep=",",stringsAsFactors = FALSE) prin_comp <- prcomp(Data) 进行主成分分析

我从UCI网站上传了数据,准备好数据后,我使用内置函数
prcomp
进行了PCA。 数据的维数为(569)(32)。这是我的数据

Data<- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data",sep=",",stringsAsFactors = FALSE)

prin_comp <- prcomp(Data)
进行主成分分析的原因是为了降低维数


我的问题是如何在R中使用交叉验证来确定PC。

欢迎来到Stack Overflow!我们都很乐意提供帮助,但我们需要一些东西:1)一个可复制的示例,说明您试图以R代码的形式完成的任务;2) 预期结果与实际结果的对比;以及3)任何可能提示问题的其他信息。说了这么多,这里有一个开始:如果你有关于统计的问题,你应该继续问。StackOverflow仅适用于特定的编程问题。这太宽泛了,因为可能有几十个不同的包可以让你在R中进行主成分分析。主成分的数量通常是通过查看特征值的累积和(它告诉你捕获的方差总量)并将阈值设置在所需的水平(例如80%)来决定的。交叉验证是处理任务的一种稍微不寻常的方式,但我认为您可以在一列(计算PCA)和测试(测量捕获的百分比方差)上重复该过程。也就是说,@divibisan是正确的:这个问题更适合交叉验证而不是堆栈溢出。
            PC1          PC2           PC3          PC4          PC5          PC6          PC7
  [1,] -1160.142574 -293.9175436  -48.57839763   8.71197531 -32.00048607  1.265414807  0.931336973
  [2,] -1269.122443   15.6301818   35.39453423 -17.86128323   4.33487404 -0.225871776 -0.046037222
  [3,]  -995.793889   39.1567432    1.70975298  -4.19934010   0.46652912 -2.652811158 -0.779744676
  [4,]   407.180803  -67.3803198   -8.67284783  11.75986732  -7.11546109  1.299436158 -1.267304237