问题描述
我有一个二维图,分为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='')
请注意,群集1和2的凸包重叠。据推测,如果有更多的线段组成凸包(或称“轮廓”或“多边形”,无论您想称呼它),形状将不需要重叠或重叠将很小。有没有办法为群集绘制一个更“轮廓化”的凸包?换句话说,有没有办法在群集周围绘制一个尽可能紧密地适合它的多边形?
例如,在聚类2的最南端。点132连接到点118,点118连接到点119。132-> 118-> 119。如果有更多的段,则形状将更复杂,但更“适合”。例如132-> 118-> 110-> 136-> 106-> 123-> 119。也许用另一种方式表达这个问题的方式是:我如何指定凸包应占据尽可能小的面积,同时仍包含给定簇的所有点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)