2

我正在使用 K-mean alg。为了R分离变量。我想在我能够管理的女巫中绘制结果,ggplot但是结果似乎不同ggplotcluster::clusplot

所以我想问我缺少什么:例如,我知道缩放比例不同,但我想知道当使用clustplot所有变量时 Whz 都在范围内,而使用ggplot它时不在。

仅仅是因为缩放吗?

那么下面的两个结果完全一样吗?

library(cluster)
library(ggfortify)


x <- rbind(matrix(rnorm(2000, sd = 123), ncol = 2),
           matrix(rnorm(2000, mean = 800, sd = 123), ncol = 2))
colnames(x) <- c("x", "y")
x <- data.frame(x)

A <- kmeans(x, centers = 3, nstart = 50, iter.max = 500)
cluster::clusplot(cbind(x$x, x$y), A$cluster, color = T, shade = T)
autoplot(kmeans(x, centers = 3, nstart = 50, iter.max = 500), data = x, frame.type = 'norm')
4

1 回答 1

1

对我来说,我使用clusplotor得到相同的情节ggplot。但要使用ggplot,您必须首先PCA对数据进行 a 才能获得与 相同的图clustplot。也许这是你有问题的地方。

在这里,以你的例子,我做了:

x <- rbind(matrix(rnorm(2000, sd = 123), ncol = 2),
           matrix(rnorm(2000, mean = 800, sd = 123), ncol = 2))
colnames(x) <- c("x", "y")
x <- data.frame(x)

A <- kmeans(x, centers = 3, nstart = 50, iter.max = 500)
cluster::clusplot(cbind(x$x, x$y), A$cluster, color = T, shade = T)

pca_x = princomp(x)
x_cluster = data.frame(pca_x$scores,A$cluster)
ggplot(test, aes(x = Comp.1, y = Comp.2, color = as.factor(A.cluster), fill = as.factor(A.cluster))) + geom_point() + 
  stat_ellipse(type = "t",geom = "polygon",alpha = 0.4)

使用 clusplot 的情节 在此处输入图像描述

还有一个使用ggplot的: 在此处输入图像描述

希望它可以帮助您找出不同情节的原因

于 2019-11-27T19:32:03.080 回答