有没有一种很好的方法可以将多个集群输出的结果以数据帧的形式获取到一个?有什么建议么?
Is there a great way to grab the results from several cluster outputs in to one in the form of a dataframe? Any Suggestions?
我正在完成对数据集的聚类分析,并使用各种方法将其切片并切块成各个部分,所有这些都是为了最大化使用 kmeans 分割大量数据的结果。所以有 15 个单独的 kmeans objects 作为结果,如果能够将它们转换为 table 以一次查看所有内容,包括引用模型的标题和关键统计信息,将会非常有帮助关于每个模型。有什么建议吗?下面是将结果打印到 R Studio 的输出部分时的任何结果示例。我已经搜索过包裹等但没有任何运气。感谢您提供的任何帮助!!!
K-means clustering with 5 clusters of sizes 11356, 4621, 3380, 7455, 4381
Cluster means:
PRCT_DIFF_LOCK_ON PRCT_FRONT_PTO_ON PRCT_REAR_PTO_ON PRCT_MFWD_ON
1 0.045629787 0.0006149385 0.05848930 0.80521712
2 0.006848544 0.0036244639 0.15807745 0.06906081
3 0.390860459 0.0004615964 0.07576421 0.79353567
4 0.040412934 0.0048262841 0.11052730 0.48966547
5 0.053424999 0.0149324570 0.45581038 0.64261907
Within cluster sum of squares by cluster:
[1] 665.8571 568.6334 264.2810 554.8512 457.3876
(between_SS / total_SS = 55.5 %)
kmeans
的输出是 list
。如果我们要提取 Cluster means
,请使用
k2$centers
Murder Assault UrbanPop Rape
1 1.004934 1.0138274 0.1975853 0.8469650
2 -0.669956 -0.6758849 -0.1317235 -0.5646433
broom
包可以将输出汇总到一个数据中。frame/tibble
library(broom)
> tidy(k2)
# A tibble: 2 x 7
Murder Assault UrbanPop Rape size withinss cluster
<dbl> <dbl> <dbl> <dbl> <int> <dbl> <fct>
1 1.00 1.01 0.198 0.847 20 46.7 1
2 -0.670 -0.676 -0.132 -0.565 30 56.1 2
> glance(k2)
# A tibble: 1 x 4
totss tot.withinss betweenss iter
<dbl> <dbl> <dbl> <int>
1 196 103. 93.1 1
-可重现的例子
library(cluster)
df <- USArrests
df <- na.omit(df)
df <- scale(df)
k2 <- kmeans(df, centers = 2, nstart = 25)
我正在完成对数据集的聚类分析,并使用各种方法将其切片并切块成各个部分,所有这些都是为了最大化使用 kmeans 分割大量数据的结果。所以有 15 个单独的 kmeans objects 作为结果,如果能够将它们转换为 table 以一次查看所有内容,包括引用模型的标题和关键统计信息,将会非常有帮助关于每个模型。有什么建议吗?下面是将结果打印到 R Studio 的输出部分时的任何结果示例。我已经搜索过包裹等但没有任何运气。感谢您提供的任何帮助!!!
K-means clustering with 5 clusters of sizes 11356, 4621, 3380, 7455, 4381
Cluster means:
PRCT_DIFF_LOCK_ON PRCT_FRONT_PTO_ON PRCT_REAR_PTO_ON PRCT_MFWD_ON
1 0.045629787 0.0006149385 0.05848930 0.80521712
2 0.006848544 0.0036244639 0.15807745 0.06906081
3 0.390860459 0.0004615964 0.07576421 0.79353567
4 0.040412934 0.0048262841 0.11052730 0.48966547
5 0.053424999 0.0149324570 0.45581038 0.64261907
Within cluster sum of squares by cluster:
[1] 665.8571 568.6334 264.2810 554.8512 457.3876
(between_SS / total_SS = 55.5 %)
kmeans
的输出是 list
。如果我们要提取 Cluster means
,请使用
k2$centers
Murder Assault UrbanPop Rape
1 1.004934 1.0138274 0.1975853 0.8469650
2 -0.669956 -0.6758849 -0.1317235 -0.5646433
broom
包可以将输出汇总到一个数据中。frame/tibble
library(broom)
> tidy(k2)
# A tibble: 2 x 7
Murder Assault UrbanPop Rape size withinss cluster
<dbl> <dbl> <dbl> <dbl> <int> <dbl> <fct>
1 1.00 1.01 0.198 0.847 20 46.7 1
2 -0.670 -0.676 -0.132 -0.565 30 56.1 2
> glance(k2)
# A tibble: 1 x 4
totss tot.withinss betweenss iter
<dbl> <dbl> <dbl> <int>
1 196 103. 93.1 1
-可重现的例子
library(cluster)
df <- USArrests
df <- na.omit(df)
df <- scale(df)
k2 <- kmeans(df, centers = 2, nstart = 25)