主要内容

clusterDBSCAN

Density-based算法聚类数据

描述

clusterDBSCAN集群数据点属于一个P维特征空间使用density-based空间聚类的应用程序与噪声(DBSCAN)算法。聚类算法分配点在特征空间相互接近到一个集群。例如,雷达系统可以返回多个检测紧密间隔的扩展目标范围,角度和多普勒。clusterDBSCAN分配这些检测到一个检测。

  • DBSCAN算法假设集群区域空间分隔的数据密集地区的低密度和密集的地区也有类似的密度。

  • 测量密度在一定程度上,该算法计算数据点的数量在一个附近的点。社区是一个P在特征空间维椭圆(hyperellipse)。的半径椭圆的定义P向量ε。ε可以是标量,在这种情况下,hyperellipse变成超球面。点之间的距离计算特征空间使用欧氏距离度量。附近称为ε-neighborhood。ε的价值定义的ε财产。ε要么是一个标量或P向量:

    • 一个矢量在特征空间时使用不同的维度有不同的单位。

    • 一个标量相同的值适用于所有维度。

  • 集群首先发现核心点。如果一个点ε-neighborhood足够数量的点,点被称为核心点。所需的最小数量的点一个点成为一个核心问题是设定的MinNumPoints财产。

  • 其余点的ε-neighborhood核心点可以核心点自己。如果不是,他们是边境点。所有ε-neighborhood称为点直接密度可及从核心的观点。

  • 如果ε-neighborhood核心观点包含其他核心的点,这些点的ε-neighborhoods所有核心点ε-neighborhoods合并在一起形成一个联盟。这一过程持续进行直到没有更多的核心点可以被添加。

    • ε-neighborhoods联盟中所有的点密度可及从第一个核心观点。事实上,所有在欧盟从所有核心密度可及点的联盟。

    • 所有点的结合ε-neighborhoods也称为密度连接虽然不一定是边界点可获得的从对方。一个集群最大的一组density-connected分,可以有任意形状。

  • 点,不是核心或边界点噪音点。他们不属于任何集群。

  • clusterDBSCAN对象可以使用一个估计εk最近的邻居搜索,也可以指定值。让对象估计ε,设置EpsilonSource财产“汽车”

  • clusterDBSCAN对象可以包含歧义消除歧义的数据。范围和多普勒的例子可能模棱两可的数据。集EnableDisambiguation财产真正的消除歧义的数据。

集群检测:

  1. 创建clusterDBSCAN对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

clusterer运算= clusterDBSCAN创建一个clusterDBSCAN对象,clusterer运算,对象的默认属性值。

ε对聚类的影响

clusterer运算= clusterDBSCAN(名称,值)创建一个clusterDBSCAN对象,clusterer运算每个指定的属性的名字设置为指定的价值。您可以指定额外的名称-值对参数在任何顺序(Name1,Value1、……,)。任何未指定的属性默认值。例如,

clusterer运算= clusterDBSCAN (“MinNumPoints”3,‘ε’2,“EnableDisambiguation”,真的,“AmbiguousDimension”[1,2]);
clusterer运算与创建一个连接EnableDisambiguation属性设置为真AmbiguousDimension设置为[1,2]

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

ε值定义一个ε-neighborhood来源,指定为“属性”“汽车”

  • 当你设置EpsilonSource财产“属性”,得到的εε财产。

  • 当你设置EpsilonSource财产“汽车”ε估计自动使用k最近的邻居(knn)搜索的范围k值从k最小值k马克斯

    k 最小值 = MinNumPoints 1 k 马克斯 = MaxNumPoints 1

    的减法是必要的,因为邻居的一个点的数量不包括点本身,而MinNumPointsMaxNumPoints指在附近点的总数。

数据类型:字符|字符串

社区搜索半径,指定为一个积极的标量或积极的,实值1 -P行向量。P在输入数据的特性,X

ε定义了一个椭圆的半径在任何时候创建一个ε-neighborhood。当ε是一个标量,同样的半径尺寸适用于所有功能。您可以应用不同的ε值不同的特性通过指定一个积极的,实值1 -P行向量。一个行向量创建一个多维椭圆(hyperellipse)搜索区域,有用的数据特性有不同的物理含义,如范围和多普勒。看到估计ε关于这个属性的更多信息。

您可以使用clusterDBSCAN.estimateEpsilonclusterDBSCAN.discoverClusters对象函数来估计一个标量值ε。

例子:21.0 [11]

可调:是的

依赖关系

要启用这个特性,设置EpsilonSource财产“属性”

数据类型:

最小数量的点一个点的ε-neighborhood这一点成为一个核心问题,指定为一个正整数。看到选择最小数量的点为更多的信息。当对象自动估计ε使用k神经网络搜索的起始值k(k最小值)是MinNumPoints- 1。

例子:5

数据类型:

设置结束k神经网络搜索范围,指定为一个正整数。当对象自动估计ε使用k神经网络搜索,结局的价值k(k马克斯)是MaxNumPoints- 1。

例子:13

依赖关系

要启用这个特性,设置EpsilonSource财产“汽车”

数据类型:

长度存储ε的历史,指定为一个正整数。当设置为1,历史是内存较少,这意味着每个ε估计是立即使用,没有移动平均平滑。大于1时,ε是指定的历史长度的平均值。

例子:5

依赖关系

要启用这个特性,设置EpsilonSource财产“汽车”

数据类型:

指定的维度,开关,使消歧真正的。当真正的、集群可以发生在边界定义的输入amblims在执行。使用AmbiguousDimensions属性指定的列索引X会发生歧义。你可以消除歧义两个维度。打开消歧是不建议用于大型数据集。

数据类型:逻辑

指数的模棱两可的维度,指定为一个正整数或正整数1×2向量。这个属性指定的列X应用消歧。一个正整数表示一个模棱两可的维度的输入数据矩阵X。1×2行向量指定两个模棱两可的维度。的大小和顺序AmbiguousDimension和对象的输入必须是一致的吗amblims

例子:[3 - 4]

依赖关系

要启用这个特性,设置EnableDisambiguation财产真正的

数据类型:

使用

描述

例子

idxclusterer运算(=X)在输入数据集群的点,Xidx包含一个id识别集群列表的每一行X属于。噪声点指定为“1”。

例子

(idx,clusterids]= clusterer运算(X)还返回一组备用的集群id,clusterids,使用的phased.RangeEstimatorphased.DopplerEstimator对象。clusterids向每一个噪声点分配一个惟一的ID。

(___]= clusterer运算(X,amblims)还指定了最小和最大模糊限制,amblims,适用于数据。

要启用这种语法,设置EnableDisambiguation财产真正的

(___]= clusterer运算(X,更新)自动从输入数据矩阵,估计εX,当更新被设置为真正的。评估使用k神经网络搜索创建一组曲线。有关更多信息,请参见估计ε。估计是平均的l最近,ε值l中指定EpsilonHistoryLength

要启用这种语法,设置EpsilonSource财产“汽车”,选择设置MaxNumPoints财产,也可选设置EpsilonHistoryLength财产。

(___]= clusterer运算(X,amblims,更新)集模糊限制和估计ε时更新被设置为真正的。要启用这种语法,集EnableDisambiguation真正的并设置EpsilonSource“汽车”

输入参数

全部展开

输入特性数据,指定为一个实值N——- - - - - -P矩阵。的N行对应的特征点P维特征空间。的P列包含的值的特征聚类。DBSCAN算法可以用适当的集群任何类型的数据MinNumPointsε设置。例如,一个两列输入可以包含xy笛卡尔坐标,或者范围和多普勒。

数据类型:

模糊限制,指定为一个实值1×2向量或矩阵实值2×2。对于一个模棱两可的维度,指定限制为1×2向量[MinAmbiguityLimitDimension1, MaxAmbiguityLimitDimension1]。对于两个模棱两可维度,指定的限制为2×2矩阵[MinAmbiguityLimitDimension1, MaxAmbiguityLimitDimension1;MinAmbiguityLimitDimension2 MaxAmbiguityLimitDimension2]。模糊限制允许集群跨边界确保适当的模糊检测集群。

的模棱两可的列X中定义AmbiguousDimension财产。amblims定义了最小和最大模糊限制在同一单位的数据AmbiguousDimensionX

例子:[0 20;-40 40]

依赖关系

要启用这个论点,集EnableDisambiguation真正的并设置AmbiguousDimension财产。

数据类型:

启用自动更新的ε估计,指定为真正的

  • 真正的首先,ε阈值估计的平均的膝盖k神经网络搜索曲线。然后估计是添加到一个缓冲区的长度l被设置在EpsilonHistoryLength财产。最后使用的ε的平均计算l长度ε历史缓冲区。如果EpsilonHistoryLength被设置为1,估计是内存较少。内存较少意味着每个ε估计是立即使用,没有移动平均平滑。

  • 使用,之前的ε估计。估计ε是计算密集型和不建议用于大型数据集。

依赖关系

要启用这个论点,设置EpsilonSource财产“汽车”并指定MaxNumPoints财产。

数据类型:

输出参数

全部展开

集群索引,返回为一个整数值N1列向量。idx代表了DBSCAN算法的聚类结果。积极的idx值对应于集群满足DBSCAN聚类标准。一个值的1”表明DBSCAN噪声点。

数据类型:

选择集群id,返回1,N行向量的正整数。每个值是一个独特的标识符表示一个假想的集群目标。这个参数包含独特的积极集群id为所有点包括噪音。相比之下,idx输出参数标签噪声点与“1”。使用clusterids作为输入相控阵系统工具箱™对象等phased.RangeEstimatorphased.DopplerEstimator

数据类型:

对象的功能

使用一个目标函数,指定系统对象™作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

clusterDBSCAN.discoverClusters 发现集群层次结构数据
clusterDBSCAN.estimateEpsilon 估计邻域聚类阈值
clusterDBSCAN.plot 情节集群
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

创建扩展对象的检测与测量范围和多普勒。假设最明确的范围是20米跨度和明确的多普勒扩展 - - - - - - 30. 赫兹, 30. 赫兹。这个例子中包含的数据dataClusterDBSCAN.mat文件。数据矩阵的第一列代表范围,第二列表示多普勒。

输入数据包含以下扩展目标和假警报:

  • 一个明确的目标位于 ( 10 , 15 )

  • 在多普勒位于一个模糊的目标 ( 10 , - - - - - - 30. )

  • 位于一个模糊的目标范围 ( 20. , 15 )

  • 一个模糊的目标距离和多普勒位于 ( 20. , 30. )

  • 5假警报

创建一个clusterDBSCAN对象和消歧不是由设置指定EnableDisambiguation。解出集群指数。

负载(“dataClusterDBSCAN.mat”);cluster1 = clusterDBSCAN (“MinNumPoints”3,‘ε’2,“EnableDisambiguation”、假);idx = cluster1 (x);

使用clusterDBSCAN情节目标函数来显示集群。

情节(cluster1, x, idx)

图集群包含一个坐标轴对象。坐标轴对象与标题集群包含10线类型的对象,散射,文本。

情节表明有八个明显的集群和六个噪声点。“尺寸1 '标签对应范围和“维度2》标签对应于多普勒。

接下来,创建另一个clusterDBSCAN对象并设置EnableDisambiguation真正的在范围和执行指定聚类多普勒模糊的界限。

cluster2 = clusterDBSCAN (“MinNumPoints”3,‘ε’2,“EnableDisambiguation”,真的,“AmbiguousDimension”[1,2]);

使用模糊限制执行聚类,然后绘制聚类结果。DBSCAN聚类结果正确显示四个集群和五个噪声点。例如,点在范围接近零的点附近最大20米,因为明确的范围是20米。

amblims = [0 maxRange;minDoppler maxDoppler];idx = cluster2 (x, amblims);情节(cluster2 x, idx)

图集群包含一个坐标轴对象。坐标轴对象与标题集群包含6行类型的对象,散射,文本。

集群使用二维笛卡尔的位置数据clusterDBSCAN。为了说明ε的选择如何影响聚类,聚类的结果进行比较ε设置为1,ε设置为3。

创建随机目标位置数据xy笛卡儿坐标。

2 x =[兰德(20日)+ 12;兰特(20,2)+ 10;兰德(20,2)+ 15);情节(x (: 1) x (:, 2),“。”)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

创建一个clusterDBSCAN对象的ε属性设置为1MinNumPoints属性设置为3。

clusterer运算= clusterDBSCAN (‘ε’,1“MinNumPoints”3);

集群的数据时ε等于1。

idxEpsilon1 clusterer运算(x) =;

再次,但集群数据ε设置为3。你可以改变的价值ε因为它是一个可调的特性。

clusterer运算。ε=3; idxEpsilon2 = clusterer(x);

图聚类结果并排。通过传入轴处理和标题情节方法。图显示ε设置为1,三个集群出现。当ε3,两个降低集群是合并成一个。

hAx1 =情节(1、2、1);情节(clusterer运算,x, idxEpsilon1“父”hAx1,“标题”,“ε= 1”)hAx2 =次要情节(1、2、2);情节(clusterer运算,x, idxEpsilon2“父”hAx2,“标题”,“ε= 3”)

图包含2轴对象。坐标轴对象1标题ε= 1包含4散射类型的对象,文本。坐标轴对象与标题2ε= 3包含3散射类型的对象,文本。

算法

全部展开

引用

[1]酯M。,Kriegel H.-P., Sander J., and Xu X. "A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise".Proc。第二Int。Conf.知识发现和数据挖掘,波特兰,或AAAI出版社,1996年,第226 - 231页。

[2]埃里希·舒伯特,Jorg桑德,马丁酯,汉斯Kriegel,和徐小韦。2017。“DBSCAN重新审视,重新审视:为什么以及如何你应该(仍然)使用DBSCAN”。ACM反式。数据库系统。42、3、第十九条(2017年7月),21页。

[3]杜米尼克柯尔尼Jens Klappstein克劳斯Dietmayer,“基于网格的DBSCAN聚类扩展雷达数据对象”,2012年IEEE智能车辆研讨会

[4]托马斯•瓦格纳Reinhard Feger,安德烈亚斯Stelzer,”一个快速的基于网格的聚类算法用于范围/多普勒/ DoA测量”,《欧洲雷达会议13日

[5]Mihael Ankerst,马库斯·m·Breunig汉斯Kriegel, Jorg桑德,“光学:订购点识别聚类结构”,Proc。ACM SIGMOD 99年Int。Conf.管理的数据,1999年宾夕法尼亚州费城。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2021a