主要内容

clusterDBSCAN

基于密度的数据聚类算法

描述

clusterDBSCAN集合属于的数据点P-维特征空间利用基于密度的空间聚类应用带噪声(DBSCAN)算法。聚类算法将特征空间中彼此接近的点分配到单个聚类中。例如,雷达系统可以返回在距离、角度和多普勒上紧密间隔的扩展目标的多次探测。clusterDBSCAN将这些检测分配给单个检测。

  • DBSCAN算法假设集群是数据空间中的密集区域,由密度较低的区域分隔,并且所有的密集区域密度相似。

  • 为了测量一个点的密度,算法计算该点附近的数据点的数量。社区是一个P特征空间中的-维椭圆(超椭圆)。椭圆的半径由函数定义P向量ε。ε可以是一个标量,在这种情况下,超椭圆就变成了超球。特征空间中点之间的距离使用欧氏距离度量计算。这个邻域叫做ε-邻域。ε的值由ε财产。ε可以是标量或P向量:

    • 当特征空间的不同维度具有不同的单位时,就使用向量。

    • 标量对所有维度应用相同的值。

  • 聚类从找到所有开始核心点。如果一个点在它的ε-邻域内有足够多的点,这个点被称为核心点。一个点成为核心点所需的最小点数由MinNumPoints财产。

  • 核心点的ε-邻域的其余点可以是核心点本身。如果不是,它们就是边境点。ε-邻域中的所有点都叫做直接密度可及从核心观点出发。

  • 如果一个核心点的ε-邻域包含其他核心点,则所有核心点的ε-邻域中的点合并在一起,形成ε-邻域的并集。这个过程将持续下去,直到不再添加核心点为止。

    • ε-邻域并集中的所有点都是密度可及从第一个核心点开始。事实上,从联盟的所有核心点,联盟的所有点都是密度可达的。

    • ε-邻域并集中的所有点也被命名密度连接尽管边界点不一定可获得的从对方。一个集群是密度连接点的最大集合,可以具有任意形状。

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

  • clusterDBSCAN对象可以用a估计εk-最近邻搜索,或者您可以指定值。要让对象估计ε,设EpsilonSource财产“汽车”

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

集群检测:

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

  2. 调用带有参数的对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

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

Epsilon对聚类的影响

clusterer运算= clusterDBSCAN(名称,值)创建一个clusterDBSCAN对象,clusterer运算,使用每个指定的属性的名字设置为指定的价值.可以以任意顺序指定附加的名称-值对参数,如(Name1Value1、……).任何未指定的属性都采用默认值。例如,

clusterer运算= clusterDBSCAN (“MinNumPoints”3,‘ε’,2,...“EnableDisambiguation”,真的,“AmbiguousDimension”[1, 2]);
类创建集群EnableDisambiguation属性设置为true和AmbiguousDimension设置为[1,2]

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果属性是可调,您可以随时更改其值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统

定义ε-邻域的ε值的来源,具体为“属性”“汽车”

  • 当你设置EpsilonSource财产“属性”, ε由ε财产。

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

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

    需要减1,因为点的邻居数不包括点本身,而MinNumPoints而且MaxNumPoints指一个邻域内的点总数。

数据类型:字符|字符串

邻域搜索的半径,指定为正标量或正实值1 × -P行向量。P是输入数据中特征的数量,X

ε定义任意点的椭圆半径来创建ε-邻域。当ε是标量,相同的半径适用于所有特征维度。通过指定正的实值1 × -,可以为不同的特征应用不同的值P行向量。行向量创建一个多维椭圆(超椭圆)搜索区域,当数据特征具有不同的物理意义(如范围和多普勒)时,这很有用。看到估计ε有关此属性的更多信息。

您可以使用clusterDBSCAN.estimateEpsilonclusterDBSCAN.discoverClusters对象函数,以帮助估计epsilon的标量值。

例子:21.0 [11]

可调:是的

依赖关系

要启用此属性,请设置EpsilonSource财产“属性”

数据类型:

一个点的ε-邻域中使该点成为核心点的最小个数,指定为正整数。看到选择最小点数为更多的信息。当对象使用a自动估计k的起始值kk最小值)是MinNumPoints- 1。

例子:5

数据类型:

设置结束k-NN搜索范围,指定为正整数。当对象使用a自动估计k的结束值kk马克斯)是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”。

例子

idxclusterids] = clusterer运算(X也返回一组备用的集群id,clusterids,用于分阶段。RangeEstimator而且分阶段。DopplerEstimator对象。clusterids为每个噪声点分配一个唯一的ID。

___] = clusterer运算(Xamblims还指定了最小和最大歧义限制,amblims,以应用于数据。

要启用此语法,请设置EnableDisambiguation财产真正的

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

要启用此语法,请设置EpsilonSource财产“汽车”,可选地设置MaxNumPoints属性,并可选地设置EpsilonHistoryLength财产。

___] = clusterer运算(Xamblims更新设置模糊性限制,并在更新被设置为真正的.若要启用此语法,请设置EnableDisambiguation真正的并设置EpsilonSource“汽车”

输入参数

全部展开

输入特征数据,指定为实值N——- - - - - -P矩阵。的N行对应于a中的特征点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财产。

数据类型:

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

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

  • ,使用先前的估计。估计是计算密集型的,不推荐用于大型数据集。

依赖关系

要启用此参数,请设置EpsilonSource财产“汽车”并指定MaxNumPoints财产。

数据类型:

输出参数

全部展开

群集索引,作为整数值返回N1列向量。idx表示DBSCAN算法的聚类结果。积极的idx值对应满足DBSCAN聚类条件的集群。值为'-1表示DBSCAN噪声点。

数据类型:

可选集群id,作为1 by-返回N正整数的行向量。每个值都是指示假想目标集群的唯一标识符。此参数包含所有点(包括噪声)的唯一正集群id。相比之下,idx输出参数用' -1 '标记噪声点。使用clusterids作为相控阵系统工具箱™对象的输入,例如分阶段。RangeEstimator而且分阶段。DopplerEstimator

数据类型:

对象的功能

要使用对象函数,请将System对象™指定为第一个输入参数。例如,释放名为obj,使用以下语法:

发行版(obj)

全部展开

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

例子

全部折叠

创建探测范围和多普勒测量的扩展对象。假设最大无歧义距离为20 m,无歧义多普勒跨度从 - 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)

图Clusters包含一个axes对象。标题为Clusters的axis对象包含10个类型为line、scatter、text的对象。

图中显示有8个明显的聚类和6个噪声点。“尺寸1 'Label对应于range和'维度2》标签对应多普勒。

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

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

使用歧义限制执行聚类,然后绘制聚类结果。DBSCAN聚类结果正确显示了4个聚类和5个噪声点。例如,距离接近零的点与距离接近20米的点聚在一起,因为最大的明确范围是20米。

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

图Clusters包含一个axes对象。标题为Clusters的axis对象包含6个类型为line、scatter、text的对象。

利用聚类二维笛卡尔位置数据clusterDBSCAN.为了说明epsilon的选择如何影响聚类,将聚类结果与ε设置为1ε设置为3。

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

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

图中包含一个axes对象。axis对象包含一个类型为line的对象。

创建一个clusterDBSCAN对象的ε属性设置为1和MinNumPoints属性设置为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 = subplot(1,2,2);情节(clusterer运算,x, idxEpsilon2...“父”hAx2,“标题”“ε= 3”

图中包含2个轴对象。标题为Epsilon = 1的axis对象1包含4个类型为scatter、text的对象。标题为Epsilon = 3的Axes对象2包含3个类型为scatter、text的对象。

算法

全部展开

参考文献

[1] Ester M., Kriegel h . p .;, Sander J., Xu X.。“一种基于密度的大型噪声空间数据库聚类发现算法”。Proc。第二Int。知识发现与数据挖掘研讨会,波特兰,OR, AAAI出版社,1996,页226-231。

[2]埃里克·舒伯特,Jörg桑德,马丁·艾斯特,汉斯-彼得·克里格尔,徐晓伟,2017。“DBSCAN的再版,再版:为什么和如何使用DBSCAN”。ACM反式。数据库系统。42,3,第19条(2017年7月),21页。

[3] Dominik Kellner, Jens Klappstein和Klaus Dietmayer,“基于网格的DBSCAN聚类雷达数据扩展对象”,2012年IEEE智能汽车研讨会

Thomas Wagner, Reinhard Feger和Andreas Stelzer,“一种基于网格的快速距离/多普勒/DoA测量聚类算法”,第十三届欧洲雷达会议论文集

[5] Mihael Ankerst, Markus M. Breunig, Hans-Peter Kriegel, Jörg Sander,“光学:排序点识别聚类结构”,ACM SIGMOD ' 99 Int型。数据管理会议宾夕法尼亚州费城,1999年。

扩展功能

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

版本历史

介绍了R2021a

Baidu
map