R K-均值聚类方法

R K-均值聚类方法,r,k-means,R,K Means,我正试图在R中生成集群方式的合适图形显示 如何将属性放置在x轴上,并将每个簇的均值视为项目的轨迹 所有数据都是连续的。以下方法如何:由于变量处于类似的测量尺度(如Likert尺度),您可以显示每个簇内每个变量的分布(如箱线图),并通过使用每个簇上相同的轴限制,直观地比较其分布 这可以通过将数据放入适当的格式并使用ggplot2包生成绘图来实现。如下所示 步骤1:生成模拟数据以模拟您拥有的数字数据 生成的数据包含四个非负整数变量和一个包含3个簇的簇变量 library(ggplot2)

我正试图在
R
中生成集群方式的合适图形显示

如何将属性放置在
x轴上
,并将每个簇的
均值
视为项目的轨迹


所有数据都是连续的。

以下方法如何:由于变量处于类似的测量尺度(如Likert尺度),您可以显示每个簇内每个变量的分布(如箱线图),并通过使用每个簇上相同的轴限制,直观地比较其分布

这可以通过将数据放入适当的格式并使用
ggplot2
包生成绘图来实现。如下所示

步骤1:生成模拟数据以模拟您拥有的数字数据 生成的数据包含四个非负整数变量和一个包含3个簇的簇变量

library(ggplot2)
    
set.seed(1717)    # make the simulated data repeatable
N = 100
nclusters = 3
cluster = as.numeric( cut(rnorm(N), breaks=nclusters, label=seq_len(nclusters)) )
df = data.frame(cluster=cluster,
                x1=floor(cluster + runif(N)*5),
                x2=floor(runif(N)*5),
                x3=floor((nclusters-cluster) + runif(N)*5),
                x4=floor(cluster + runif(N)*5))
df$cluster = factor(df$cluster)  # define cluster as factor to ease plotting code below
tail(df)
table(df$cluster)
其输出为:

    cluster x1 x2 x3 x4
95        2  5  2  5  2
96        3  5  4  0  3
97        3  3  3  1  7
98        2  5  4  3  3
99        3  6  1  1  7
100       3  5  1  2  5

 1  2  3 
15 64 21 
     cluster var value id
1.x1       1  x1     5  1
2.x1       1  x1     3  2
3.x1       3  x1     5  3
4.x1       1  x1     1  4
5.x1       2  x1     3  5
6.x1       1  x1     2  6

  1   2   3 
 60 256  84 
i、 例如,在100个模拟案例中,数据包含集群1中的15个案例、集群2中的64个案例和集群3中的21个案例

步骤2:准备用于打印的数据 在这里,我们使用
stats
包中的
reformate()
将数据集从宽到长进行转换,以便将四个数值变量(
x1
x2
x3
x4
)放在一列中,适用于为四个变量中的每一个生成箱线图,然后根据集群变量进行分组

vars2transpose = c("x1", "x2","x3", "x4")
df.long = reshape(df, direction="long", idvar="id",
                  varying=list(vars2transpose),
                  timevar="var", times=vars2transpose, v.names="value")
head(df.long)
table(df.long$cluster)
其输出为:

    cluster x1 x2 x3 x4
95        2  5  2  5  2
96        3  5  4  0  3
97        3  3  3  1  7
98        2  5  4  3  3
99        3  6  1  1  7
100       3  5  1  2  5

 1  2  3 
15 64 21 
     cluster var value id
1.x1       1  x1     5  1
2.x1       1  x1     3  2
3.x1       3  x1     5  3
4.x1       1  x1     1  4
5.x1       2  x1     3  5
6.x1       1  x1     2  6

  1   2   3 
 60 256  84 
请注意,由于数据现在是转置的长格式,每个集群中的案例数量增加了4倍(即数字变量的数量)

步骤3:使用线连接方式通过集群创建变量的箱线图 我们绘制每个变量
x1
x2
x3
x4
的水平箱线图,显示它们在每个簇中的分布,并用连接的红色十字标记平均值(您所追踪的轨迹)


什么是轨迹?欢迎来到SO!请添加一些数据、代码和所需结果的清晰模型,以获得帮助。我创建了4个K-means群集,现在我正试图找到一种方法来显示群集平均值,并显示每个群集中使用的属性。这只是我想到的一个想法,但我确信这是否是一个合适的想法。