基于网格的聚类算法是什么?
网格是一种有效的方法来组织一组数据,在低维度下至少如此。这个概念是将每个属性的适用值划分为多个连续的区间,形成一组网格单元。每个对象都落入一个网格单元中,其等效属性区间包含该对象的值。
可以通过一次遍历记录来将对象创建到网格单元中,并且还可以同时收集每个单元格的数据,包括单元格中的点数。
有多种方法可以使用网格实现聚类,但大多数方法都基于密度。基于网格的聚类算法如下:
表示一组网格单元。
将对象创建到相应的单元格中并计算每个单元格的密度。
删除密度低于定义阈值 r 的单元格。
从连续的密集单元格形成聚类。
定义网格单元 - 这是过程中的一个基本步骤,但也是最不清楚的步骤,因为有多种方法可以将每个属性的可能值划分为多个连续的区间。对于连续属性,一种方法是将值划分为宽度相同的区间。如果将此方法应用于每个属性,则生成的网格单元都具有相同的体积,并且单元格的密度很容易定义为单元格中的点数。
网格单元的密度 - 可以将网格单元的密度定义为点数除以区域的体积。换句话说,密度是单位面积上的点数,无论该区域的维度如何。
从密集网格单元形成聚类 - 从相邻的密集单元格形成聚类相对容易。存在一些问题,例如需要定义相邻单元格的含义。聚类方法有一些缺点可以通过使算法更完善来解决。例如,在聚类的边界上可能存在部分为空的单元格。
可以通过使用高于密度的数据来改进基本的基于网格的聚类。在某些情况下,记录同时具有空间和非空间属性。换句话说,某些属性定义了对象在时间或空间上的区域,而其他属性定义了对象的其它方面。
例如,房屋既有区域,也有多个特征,包括价格或以平方英尺为单位的楼层面积。由于空间(或时间)自相关,特定单元格中的对象对于其其他属性具有相同的值。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP