如何解释 R 中的 clusplot

机器算法验证 r 聚类 k-均值
2022-04-22 11:39:25

clusplot我已经使用包中的 绘制了(分区对象的)二元聚类图cluster以下是此代码:

k.means.fit <- kmeans(pima_diabetes_kmean[, c(input$first_model, input$second_model)], 2)
  output$kmeanPlot <- renderPlot({
    # K-Means
    clusplot(
      pima_diabetes_kmean[, c(input$first_model, input$second_model)],
      k.means.fit$cluster,
      main = '2D representation of the Cluster solution',
      color = TRUE,
      shade = TRUE,
      labels = 5,
      lines = 0
    )
  })

该图在 x 轴上显示组件 1,在 y 轴上显示组件 2。附下图。组件 1 是指怀孕,组件 2 是指葡萄糖,很像简单的点图吗?我对此感到困惑。

此外,它说这两个组件解释了 100% 的点可变性,这到底是什么意思?

此外,为什么聚类图中的绿点与点图中的红/黑点不同,尽管两者都绘制相同的数据?以下是绘制点的代码:

plot(
      pima_diabetes_kmean[, c(input$first_model, input$second_model)],
      col = alpha(k.means.fit$cluster, 0.2),
      pch = 20,
      cex = 3
    )
points(
  k.means.fit$centers,
  pch = 4,
  cex = 4,
  lwd = 4,
  col = "blue"
)

在此处输入图像描述

1个回答

clusplot 使用 PCA 绘制数据。它使用前两个主要成分来解释数据。

您可以在此处了解有关它的更多信息,了解主成分分析、特征向量和特征值

主成分是沿它们的数据具有最大可变性的(正交)轴,如果您的数据是二维的,那么使用两个主成分可以解释数据的整个可变性,因此您看到 100% 解释的原因。如果您的数据来自较高维度但有很多相关性,您可以使用较低维度空间来解释它。

您在图表之间看到的差异是沿着 PCA 组件绘制它们。

x <- mvrnorm(200, c(-2,2), diag(2))
y <- mvrnorm(200, c(2,-2), diag(2))
tot <- rbind(x,y)


par(mfrow = c(2,2))
## Original 
plot(x, ylim = c(-5,5), xlim = c(-5,5), col = 'green', main = 'Original Data')
points(y, col = 'red')

## Cusplot 
kmean.fit <- kmeans(tot, 2)
clusplot(tot, kmean.fit$cluster, main = 'Cusplot')

## PCA plot 
pca.tot <- princomp(tot)
plot(tot[1:200,] %*% pca.tot$loading, ylim = c(-3,3), xlim = c(-6,6), col = 'red', main = 'PCA')
points(tot[201:400, ]%*% pca.tot$loading ,col = 'green')

模拟图

您可以尝试、添加维度并更改相关结构,并查看如何获得不同的结果。