RVN 一种新的聚类算法
当我们需要对数据集进行聚类时,我们可能首先研究的算法是 K means, DBscan, hierarchical clustering 。那些经典的聚类算法总是将每个数据点视为一个点。但是,这些数据点在现实生活中通常具有大小或边界(边界框)。忽略点的边缘可能会导致进一步的偏差。RVN算法是一种考虑点和每个点的边界框的方法。
RVN 的灵感来自一家家具公司的商业案例。他们的工作是按生活方式对家具进行分类,由于每件家具都有不同的形状和大小,而一些家具是否重叠比彼此之间的距离更关键,所以创建了可以考虑每个点大小的 RVN 算法,相信该算法可以进一步在其他领域实现,例如生态系统和像素聚类。
世界地图示例 - K means
当需要对地球上所有国家进行聚类时,首先需要每个国家的坐标(经度和纬度)。
然后可以使用 K mean 或其他算法来调整最佳簇数量或找到最佳 eps 进行DB scan。我们将使用 K mean作为样例
根据上图,我们选择k=3。
看起来不错!但是我们可以注意到一些国家的一些问题,比如俄罗斯。
可以看到俄罗斯与其他亚洲国家聚集在一起。原因是代表俄罗斯位置的点更靠近其他亚洲国家。如果我们把这一点再左一点,俄罗斯就会聚集到左边。
通过这个例子定义每个点的位置对我们的结果有很大的影响。
RVN 算法
下面介绍一下RVN算法的基本逻辑。
数据要求:每个点的上限和下限
初始化
- 初始化n个簇(数据大小为n),每个点为一个簇
- 计算每个簇的半径(使用上限和下限)
迭代
- 检查所有重叠点。(范围重叠)
- 将所有重叠点分组为同一个簇
- 更新每个簇的质心和半径
停止策略
- 如果没有重叠组,则停止
- Stop by k :设置一个 K 并在总聚类低于 K 时停止算法(k mean概念)
- 其他:所有大小的百分比,最近簇的距离
下面进一步演示这个算法。
原文地址
https://www.overfit.cn/post/cbf8eaf7ec2c44368bd25db40a6af68d