基于密度的带噪声应用空间聚类(DBSCAN)
在迭代许多值迭代时提高的速度埃斯利昂
,考虑通过D.
作为输入dbscan
.这种方法可防止该功能必须在迭代的每个点计算距离。
如果你使用PDIST2.
预先执行D.
,请勿指定“最小”
或者“最大”
名称 - 值对参数PDIST2.
选择或排序列D.
.选择少于N.距离导致错误,因为dbscan
预计D.
是一个方阵。排序每一列的距离D.
导致对解释的损失D.
在使用时可以给出毫无意义的结果dbscan
功能。
为了有效的内存使用,考虑通过D.
作为逻辑矩阵而不是数字矩阵dbscan
什么时候D.
很大。默认情况下,Matlab®将每个值存储在一个8字节(64位)的数字矩阵中,将每个值存储在一个逻辑矩阵中,使用1字节(8位)。
选择一个值别人
,考虑一个大于或等于输入数据的尺寸的值加上[1]。例如,对于一个N.-经过-P.矩阵X
, 放'矿物'
等于P.+1或更大。
选择值的一种可能的策略埃斯利昂
是生成一个K.- 设计图形X
.对于每一点X
,找到到的距离K.最接近的点,并对这个距离分类点。通常,图表包含膝盖。对应于膝盖的距离通常是一个不错的选择埃斯利昂
,因为它是点开始拖延到异常值(噪声)地区[1]的区域。
DBSCAN是一种基于密度的聚类算法,旨在发现数据中的群集和噪声。该算法识别三种点数:核心点,边界点和噪声点[1]。对于指定的值埃斯利昂
和别人
, 这dbscan
函数实现算法如下:
从输入数据集X
,选择第一个未标记的观察X1作为当前点,并初始化第一群集标签C到1。
找到邻域内的点集埃斯利昂
目前的点。这些点是邻居。
如果邻居数量小于别人
,然后将当前点标记为噪声点(或异常值)。转到第4步。
笔记
dbscan
如果噪声点稍后满足所设定的约束,可以重新分配噪声点到群集埃斯利昂
和别人
从其他一些点X
.群集的边界点发生重新分配点的过程。
否则,将当前点标记为属于群集的核心点C.
迭代每个邻居(新的当前点)并重复步骤2,直到未发现任何新邻居,可以将其标记为属于当前群集C.
选择下一个未标记的点X
作为当前点,并增加群集计数1。
重复步骤2-4,直到所有点X
被标记为。
如果两个簇具有不同的密度并且彼此接近,即,两个边界点(来自每个簇的一个)之间的距离小于埃斯利昂
, 然后dbscan
可以将两个集群合并为一个。
每个有效的群集至少可能不包含别人
观察。例如,dbscan
可以识别属于彼此相邻的两个集群的边界点。在这种情况下,算法将边界点分配给第一个发现的聚类。因此,第二个集群仍然是一个有效的集群,但它可以少于别人
观察。
[1]酯,M.,H.-P。Kriegel,J. Sander和X. Xiaowei。“一种基于密度为基于密度的噪声在大型空间数据库中发现群集的算法。”在第二届数据库与数据挖掘知识发现国际会议论文集,226-231。波特兰,或:Aaai Press,1996。