dbscan
语法
描述
例子
输入参数
输出参数
更多关于
提示
如果你使用
pdist2
预先执行D
,不指定“最小”
或“最大”
名称-值对的观点pdist2
选择或排序的列D
。选择不到n距离会导致错误,因为dbscan
预计D
一个方阵。每一列的排序的距离D
导致损失的解释D
在使用时,可以给毫无意义的结果dbscan
函数。为高效的内存使用情况,考虑传入
D
作为一个逻辑矩阵而不是一个数字矩阵dbscan
当D
很大。默认情况下,MATLAB®将每个值存储在一个数字矩阵使用8个字节(64位),和每个值逻辑矩阵使用1个字节(8位)。选择一个值
minpts
,考虑一个值大于或等于输入数据的维数+ 1 [1]。例如,对于一个n——- - - - - -p矩阵X
,设置“minpts”
等于p+ 1或更高。一个可能的战略选择的值
ε
是生成一个k——远程图X
。每一个点的X
,找到距离kth最近的点,情节分类分这个距离。一般来说,图形包含一个膝盖。对应于膝盖的距离通常是一个不错的选择ε
,因为它是地区点开始下降到离群值(噪音)[1]。
算法
DBSCAN是density-based聚类算法的目的是发现集群和数据中的噪声。算法识别三种点:核心点,边界点,和噪声点[1]。指定值的
ε
和minpts
,dbscan
功能实现的算法如下:从输入数据集
X
,选择第一个标记观察x1作为当前点,并初始化第一个集群标签C为1。发现邻域内的点集
ε
当前的点。这些点是邻居。如果邻居的数量小于
minpts
标签,那么当前的点作为噪声点(或局外人)。步骤4。请注意
dbscan
可以重新分配噪声点集群如果噪音点后满足设定的约束ε
和minpts
从其他角度X
。这个过程会发生重新分配点的边界点的一个集群。否则,标签当前点作为核心点属于集群C。
遍历每个邻居(新的当前点),重复步骤2,直到没有发现新邻居,可以贴上属于当前集群C。
选择下一个标记点
X
作为当前点,提高集群数1。重复步骤2 - 4,直到所有点
X
已经标记出来。
如果两个集群不同密度和相互接近,也就是说,两个边界点之间的距离小于(一个来自每个集群)
ε
,然后dbscan
可以合并这两个集群。每个有效集群可能不包含至少
minpts
观察。例如,dbscan
可以识别一个边界点属于两个集群相互接近。在这种情况下,该算法分配的边界点首次发现集群。因此,第二个集群仍然是一个有效的集群,但它可以有不足minpts
观察。
引用
[1]酯,M。,H.-P。Kriegel, j·桑德,x小薇。“density-based发现算法在大型空间数据库集群的噪音。“在第二届国际研讨会论文集在数据库知识发现和数据挖掘,226 - 231。波特兰,或:AAAI出版社,1996年。
版本历史
介绍了R2019a