gpt4 book ai didi

r - kmean 中簇面积的公式

转载 作者:行者123 更新时间:2023-11-30 09:27:55 24 4
gpt4 key购买 nike

使用 K 均值聚类生成 K 个簇,我们如何计算每个簇的面积?有公式吗?

我已经尝试过 gArea() 与 rgeos 包,但我收到错误代码“

unable to find an inherited method for function is.projected for signature kmeans

聚类分析工作得很好,我只需要一种方法来找到每个聚类的面积。因此,无论是使用 withiness、totss 和 Betweeness 的公式,还是对代码的一些帮助,我们都会非常感激

聚类分析工作得很好,我只需要一种方法来找到每个聚类的面积。到目前为止,我的绘图部分:

###################### Clustering Script
clusters <- kmeans(df[2:3], k)

# Save the cluster number in the dataset as column 'Borough'
df$clusterId <- as.factor(clusters$cluster)
m_color=c("#999999","#E69F00","#56B4E9", "#009E73", "#F0E442",
"#0072B2", "#D55E00", "#CC79A7","#A09999","#B99F00","#E6E4E9",
"#777E73", "#D1A142", "#33AAB2", "#99CC00")

fviz_cluster(clusters, data = df[2:3],
ellipse.type = "norm",
ellipse.level = 0.99,
palette = m_color,
geom = "point",
axes = c(0,0),
show.clust.cent = TRUE,
ggtheme = theme_minimal()
)

clusters$totss
clusters$size
clusters$centers
clusters$withinss
clusters$betweenss
gArea(clusters, byid = FALSE)

最佳答案

使用example(kmeans)中的示例,我们可以获取点的凸包,然后使用polyarea来计算面积。

library(geometry)

set.seed(123)
example(kmeans) # creates input x and kmeans output cl

# area of convex hull of points in the cluster
area <- function(z) { xy <- z[chull(z), ]; polyarea(xy[,1], xy[,2]) }
sapply(split(as.data.frame(x), cl$cluster), area)
## 1 2 3 4 5
## 0.3758644 0.4127252 0.2722848 0.2090896 0.3283888

# area of box bounding all points in the cluster
area.box <- function(z) diff(range(z[, 1])) * diff(range(z[, 2]))
sapply(split(as.data.frame(x), cl$cluster), area.box)
## 1 2 3 4 5
## 0.6570733 0.7924508 0.4263473 0.3307718 0.5639517

# area of largest ellipse in the bounding box
area.ellipse <- function(z) pi * diff(range(z[, 1])) * diff(range(z[, 2])) / 4
sapply(split(as.data.frame(x), cl$cluster), area.ellipse)
## 1 2 3 4 5
## 0.5160641 0.6223894 0.3348524 0.2597876 0.4429267

关于r - kmean 中簇面积的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58011526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com