R 可视化图形簇时,防止凸面外壳重叠

R 可视化图形簇时,防止凸面外壳重叠,r,cluster-analysis,convex-hull,R,Cluster Analysis,Convex Hull,我把一个二维图分成25个簇。簇形状复杂,在某些情况下相邻。下面是一个脚本,它将生成一个简化的示例,演示我的结果: library(factoextra) km.res <- kmeans(iris[, -5], 3) fviz_cluster(km.res, iris[, -5]) + scale_color_brewer('Cluster', palette='Set2') + scale_fill_brewer('Cluster', palette='Set2') +

我把一个二维图分成25个簇。簇形状复杂,在某些情况下相邻。下面是一个脚本,它将生成一个简化的示例,演示我的结果:

library(factoextra)
km.res <- kmeans(iris[, -5], 3)

fviz_cluster(km.res, iris[, -5]) +
  scale_color_brewer('Cluster', palette='Set2') + 
  scale_fill_brewer('Cluster', palette='Set2') +
  scale_shape_manual('Cluster', values=c(22,23,24)) + 
  ggtitle(label='') 
库(额外)

km.res 118->119。如果有更多的线段,形状会更复杂,但更“适合形状”。例如,132->118->110->136->106->123->119。也许这个问题的另一种表述方式是,如何指定凸包应该占据尽可能小的区域,同时仍然包含给定簇的所有点?

您是否特别需要凸包?在您的特定示例中,生成的多边形不是凸多边形。除了可视化之外,您是否还在使用边界框?我不知道具体的代码是什么,但可以尝试搜索凹面外壳或径向排序(然后使用绘制周长)。谢谢,这是一个很好的建议。我来看看凹面或非凸面外壳。为了回答您的问题,在我的用例中,边界框仅用于可视化。