我正在处理一个相对较大的数据集(仅使用其中的 1/32,但这个子集大约为 50000x9000)。为了对此进行分析,我采取了几个步骤来降低维度,以便我可以应用某种聚类算法。
看看下面的数据框:
set.seed(340)
df = data.frame(replicate(10,sample(0:10,size = 10,replace = TRUE)))
> df
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 4 9 4 6 9 4 2 5 8 8
2 5 8 2 0 4 6 1 1 0 10
3 1 7 6 3 5 9 6 0 7 1
4 0 6 8 6 6 0 5 5 10 10
5 2 0 5 8 2 10 8 2 1 5
6 3 9 10 2 8 5 2 10 3 10
7 9 0 1 0 6 8 9 6 5 0
8 5 6 9 3 10 4 4 8 6 9
9 8 7 6 2 10 9 9 7 1 10
10 0 7 2 6 1 6 3 2 3 9
每行代表一个人,每个变量表示该人表现出这种品质的频率。假设我使用 princomp() 对此进行主成分分析,并收集前四个 pc 用于 k 均值。
pc = princomp(df)
new_df = cbind(pc$loadings[,1],pc$loading[,2],pc$loadings[,3],pc$loadings[,4])
fit = kmeans(new_df,2)
由此我可以推断出哪些集群表现出哪些主成分的高值,我可以在其中使用负载来查看每个主成分的一般度量。但是,我想最终将这些信息与我的原始数据集联系起来。有没有一种方法可以将原始数据中的每个人聚类到从主成分分析的 k 均值创建的聚类中?还是我误解了 PCA 的概念。