我有一个数据框,该数据框分为行中的样本和列中的变量
进行PCA后:
df.pca <- PCA(df, graph = FALSE, ncp = Inf)
df.coord <- data.frame(df.pca$ind$coord)
,然后对我的PCA数据进行k均值:
df.kmeans = kmeans(df.coord, 3, nstart = 25)
并可视化集群形成:
fviz.cluster(object = df.kmeans, data = df.pca)
我得到了一个具有正确尺寸的漂亮图形(对我的数据,dim1为75%,dim 2为12%,由PCA计算得出)。
但是,如果我使用k-medoid算法(PAM)做完全相同的事情:
df.pca <- PCA(df, graph = FALSE, ncp = Inf)
df.coord <- data.frame(flies.todos.pca$ind$coord)
df.pam = pam(df.coord, 3, nstart = 25)
fviz.cluster(object = df.pam, data = df.pca)
我得到的尺寸完全相同的尺寸不正确(dim1为3.4%,dim 2为3.4%)。
如何定义PCA的尺寸?
我尝试过:
fviz.cluster(object = df.pam, data = df.coord)
fviz.cluster(object = df.pam, data = df)
没有成功,我总是得到3.4%的尺寸,甚至不接近PCA值
答案 0 :(得分:1)
我遇到了同样的问题。 只是你应该输入参数 stand = FALSE
因为如果为 TRUE,则在主成分分析之前对数据进行标准化 (:
答案 1 :(得分:0)
嗯,经过简单的探索,我已经知道了答案。 对于pam()函数,始终会自动完成PCA。所以基本上我是在PCA数据上进行PCA,这根本没有意义。 如果您要使用pam()或其他任何群集算法,请检查PCA是否自动完成!