与噪声应用基于密度的空间聚类(DBSCAN)
如果您使用pdist2
预先计算d
,不指定“最小”
要么“最大”
的名称 - 值对参数pdist2
选择或排序的列d
。选择比少ñ距离导致一个错误,因为DBSCAN
预计d
是一个方阵。在分拣的每一列的距离d
导致亏损的解释d
而在使用时,可以给无意义的结果DBSCAN
功能。
对于内存使用效率,可以考虑在传递d
作为逻辑矩阵而不是数字矩阵DBSCAN
什么时候d
大。默认情况下,MATLAB®存储在使用8个字节(64位)的数值矩阵中的每个值,并在使用1个字节(8个比特)的逻辑矩阵中的每一值。
要选择一个值minpts
考虑的值大于或等于所述输入数据的尺寸加一[1]的数量。例如,对于一个ñ-通过-p矩阵X
,组'minpts'
等于p+1或更高。
一个可能的战略选择的值小量
是生成ķ距离d为图X
。对于每个点X
,寻找到的距离ķ日最近点,和剧情分类反对这个距离点。一般而言,图中包含了膝盖。距离对应于膝盖通常是一个不错的选择小量
的,因为它是其中点开始拖尾成异常值(噪声)领土[1]的区域。
DBSCAN是被设计来发现数据集群和噪声基于密度的群集算法。该算法识别3种点:核心点,边界点,以及噪声点[1]。对于指定的值小量
和minpts
中,DBSCAN
功能实现算法如下所示:
从输入数据集X
中,选择所述第一未标记的观测X1作为当前点,并初始化第一簇标签C1。
找到小量邻域内的点的集合小量
当前点。这些点是邻居。
如果邻居的数量小于minpts
,然后标记当前点为噪声点(或离群值)。进入第4步。
DBSCAN
可以重新分配噪声分簇如果噪声点以后满足设置的约束小量
和minpts
从其他一些点X
。重新分配点的过程发生了集群的边界点。
否则,标记当前点为核心点属于集群C。
遍历每个邻居(新的当前点),并重复步骤2,直到没有新的邻居发现,可被标记为属于当前群集C。
选择下一个未点X
作为当前点,并增加1群集计数。
重复步骤2-4,直到所有的点X
被标记。
如果两个簇具有不同的密度,并且彼此靠近,即,(一个来自每个群集)两个边界点之间的距离小于小量
, 然后DBSCAN
可以在两个集群合并成一个。
每个有效的集群可能不包含至少minpts
观察结果。例如,DBSCAN
可以识别属于两个簇是相互靠近边界点。在这种情况下,该算法分配边界点首次发现集群。其结果是,第二集群仍然有效的集群,但它可以比少minpts
观察结果。
[1]酯,M.,H.-P.克里格尔,J.桑德和X.小伟。“用于发现与噪声大的空间数据库集群基于密度的算法”。在第二次国际会议的知识发现诉讼数据库和数据挖掘,226-231。波特兰,俄勒冈:AAAI出版社,1996年。