0

我有一个包含超过 300,000 行/观察值和 22 个变量的大型数据集。我使用 CLARA 方法进行聚类,并使用 fviz_cluster 绘制结果。使用剪影方法,我得到了 10 作为我的集群数量,然后我将它应用于我的 CLARA 算法。

clara.res <- clara(df, 10, samples = 50,trace = 1,sampsize = 1000, pamLike = TRUE)

str(clara.res)
List of 10
 $ sample    : chr [1:1000] "100046" "100303" "10052" "100727" ...
 $ medoids   : num [1:10, 1:22] 0.925 0.125 0.701 0 0 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:10] "193751" "137853" "229261" "257462" ...
  .. ..$ : chr [1:22] "COD" "DMW" "HER" "SPR" ...
 $ i.med     : int [1:10] 104171 42062 143627 174961 300065 13836 192832 207079 185241 228575
 $ clustering: Named int [1:302251] 1 1 1 2 3 4 5 3 3 3 ...
  ..- attr(*, "names")= chr [1:302251] "1" "10" "100" "1000" ...
 $ objective : num 0.37
 $ clusinfo  : num [1:10, 1:4] 71811 40181 46271 10155 31309 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : NULL
  .. ..$ : chr [1:4] "size" "max_diss" "av_diss" "isolation"
 $ diss      : 'dissimilarity' num [1:499500] 1.392 2.192 0.937 2.157 1.643 ...
  ..- attr(*, "Size")= int 1000
  ..- attr(*, "Metric")= chr "euclidean"
  ..- attr(*, "Labels")= chr [1:1000] "100046" "100303" "10052" "100727" ...
 $ call      : language clara(x = df, k = 10, samples = 50, sampsize = 1000, trace = 1, pamLike = TRUE)
 $ silinfo   :List of 3
  ..$ widths         : num [1:1000, 1:3] 1 1 1 1 1 1 1 1 1 1 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:1000] "83395" "181310" "34452" "42991" ...
  .. .. ..$ : chr [1:3] "cluster" "neighbor" "sil_width"
  ..$ clus.avg.widths: num [1:10] 0.645 0.408 0.487 0.513 0.839 ...
  ..$ avg.width      : num 0.612
 $ data      : num [1:302251, 1:22] 1 1 1 0.366 0.35 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:302251] "1" "10" "100" "1000" ...
  .. ..$ : chr [1:22] "COD" "DMW" "HER" "SPR" ...
 - attr(*, "class")= chr [1:2] "clara" "partition"

对于情节:

fviz_cluster(clara.res,
             palette = c(
"#004c6d",
"#00a1c1",
"#ffc334",
"#78ab63",
"#00ffff",
"#00cfe3",
"#6efa75",
"#cc0089",
"#ff9509",
"#ffb6de"
             ), # color palette
             ellipse.type = "t",geom = "point",show.clust.cent = TRUE,repel = TRUE,pointsize = 0.5,
             ggtheme = theme_classic()
)+ xlim(-7, 3) + ylim (-5, 4) + labs(title = "Plot of clusters")

结果: 在此处输入图像描述

我认为这个聚类图是基于 PCA 的,并且一直试图找出我的原始数据中的哪些变量被选为 Dim1 和 Dim2 或者这些 x 和 y 轴代表什么。有人可以帮我找出这些 Dim1 和 Dim2 以及在不单独运行 PCA 的情况下存在的整个 Dim 的特征值/方差吗? 我看到还有一些其他的 PCA 函数/包,例如 factoextra 和 FactomineR 中的 get_eigenvalue,但似乎需要我从一开始就使用 PCA 算法?如何将它直接与我的 CLARA 结果集成?

另外,我的 Dim1 只包含 12.3% 和 Dim2 8.8%,这是否意味着这些变量不够具有代表性?考虑到我总共有 22 个维度(来自我的 22 个变量),我认为没关系,不是吗?我不确定 Dim1 和 Dim2 的这些百分比如何影响我的集群结果。我想从我的 CLARA 结果中做 screeplot,但我也想不通。

我会很感激任何见解。

4

0 回答 0