在R中使用交叉验证选择主成分数
我从UCI网站上传了数据,准备好数据后,我使用内置函数在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) 进行主成分分析
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