主要内容

clusterDBSCAN

基于密度的聚类数据算法

描述

clusterDBSCAN属于a的群集数据点P- 使用具有噪声(DBSCAN)算法的基于密度的空间聚类的多维特征空间。聚类算法将特征空间中彼此彼此接近的点到单个群集。例如,雷达系统可以返回多次间隔,角度和多普勒紧密间隔的延伸目标的多个检测。clusterDBSCAN将这些检测分配给单个检测。

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

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

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

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

  • 通过查找全部启动群集核心点。如果点在其ε-邻域中有足够数量的点,则该点被称为核心点。要成为核心点的点所需的最小点数是由MinNumPoints财产。

  • 核点ε邻域内的剩余点可以是核点本身。如果不是,那就是边境点。ε邻域内的所有点称为直接密度可及从核心点。

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

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

    • ε-社区联盟的所有点也被称为密度连接尽管边界点不一定可达彼此。一种集群是最大密度连接点的最大组,可以具有任意形状。

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

  • clusterDBSCAN对象可以使用a估计εk-nearest neighbor search,或者可以指定值。为了让对象估计ε,设置epsilonsource.财产“汽车”

  • clusterDBSCAN对象可以消除包含歧义的数据。距离和多普勒是可能存在模糊数据的例子。集启示汉语财产真正的消除数据。

群集检测:

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

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

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

创建

描述

集群= clusterDBSCAN创造一个clusterDBSCAN对象,集群,对象的默认属性值。

对聚类的影响

集群= clusterDBSCAN(名称,值)创造一个clusterDBSCAN对象,集群,并使用每个指定的属性姓名设置为指定的价值.您可以以任何顺序指定其他名称值对参数(名称1value1.,...,赋值).任何未指定的属性都占用默认值。例如,

clusterer运算= clusterDBSCAN (“MinNumPoints”,3,'epsilon'2,......'启示汉语,真的,'ambiguitydimension',[1 2]);
创建一个集群启示汉语属性设置为true,则AmbiguityDimension.设置[1,2]

特性

全部展开

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

如果一个属性是调节,您可以随时更改它的值。

有关更改属性值的详细信息,请参阅在MATLAB中使用系统对象进行系统设计

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

  • 当你设置的时候epsilonsource.财产“属性”, ε是从埃斯利昂财产。

  • 当你设置的时候epsilonsource.财产“汽车”, ε值使用a自动估计k-最近的邻居 (k-NN)搜索范围k价值来自kk最大限度

    k MinNumPoints 1 k 最大限度 maxnumpoints. 1

    需要减去1,因为一个点的邻居数不包括点本身,而MinNumPointsmaxnumpoints.请参阅附近的总数。

数据类型:字符|细绳

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

埃斯利昂定义任何点椭圆的半径以创建ε-邻域。当埃斯利昂为标量,相同半径适用于所有特征维数。你可以通过指定一个正的实值1-来对不同的特征应用不同的值P行向量。行向量创建一个多维椭圆(超椭圆)搜索区域,当数据特征具有不同的物理含义时,如距离和多普勒,这很有用。看估计埃斯利昂有关此属性的详细信息。

你可以使用clusterDBSCAN.estimateEpsilonclusterDBSCAN.discoverClusters帮助估计的标量值的目标函数。

例子:21.0 [11]

可调:是的

依赖性

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

数据类型:

指定为正整数的指向核心点的点的ε-邻域中的最小点数。看选择最低分数为更多的信息。当物体使用a自动估计k-NN搜索,起始值kk)是MinNumPoints- 1。

例子:5

数据类型:

设置结束k-NN搜索范围,指定为正整数。当物体使用a自动估计k-NN搜索,结束值kk最大限度)是maxnumpoints.- 1。

例子:13

依赖性

要启用此属性,请设置epsilonsource.财产“汽车”

数据类型:

存储的epsilon历史的长度,指定为正整数。当设置为一个时,历史记录较少,这意味着每个epsilon估计立即使用并且不会发生移动平均平滑。当大于一个时,epsilon平均在指定的历史长度上。

例子:5

依赖性

要启用此属性,请设置epsilonsource.财产“汽车”

数据类型:

切换以启用维度的消除歧义,指定为错误的真正的.当真正的,集群可以跨输入定义的边界发生amblims在执行。使用AmbiguousDimensions属性指定的列索引X其中可能会出现歧义。你最多可以消除两个维度的歧义。对于大数据集,不建议启用消歧功能。

数据类型:逻辑

模糊尺寸的指标,指定为正整数或一个正整数的1×2向量。此属性指定列的列X在其中应用消歧。正整数表示输入数据矩阵中的一个模糊维度X.一个1 × 2的行向量指定了两个不明确的维度。大小和顺序AmbiguityDimension.必须与对象输入一致吗amblims

例子:[3 - 4]

依赖性

要启用此属性,请设置启示汉语财产真正的

数据类型:

用法

描述

例子

idx.clusterer运算(=X将输入数据中的点聚类,Xidx.包含标识每一行所属集群的id列表X属于。噪声点被赋值为“-1”。

例子

idx.clusterids] = clusterer运算(X还返回备用一组群集ID,clusterids,用于分阶段。RangeEstimator阶段.Dopplerestimator.对象。clusterids为每个噪声点分配唯一ID。

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

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

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

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

___] = clusterer运算(Xamblims更新设置模糊度限制并估计更新被设置为真正的.要启用此语法,请设置启示汉语真正的并设置epsilonsource.“汽车”

输入参数

全部展开

输入功能数据,指定为真实值N——- - - - - -P矩阵。的N行对应于a中的特征点P维特征空间。的P列包含群集发生的功能的值。DBSCAN算法可以集聚适当的任何类型的数据MinNumPoints埃斯利昂设置。例如,两列输入可以包含xy笛卡尔坐标,或者距离和多普勒。

数据类型:

模糊限制,指定为实值1 × 2向量或实值2 × 2矩阵。对于单个模糊性维度,将极限指定为1 × 2向量[MinAmbiguityLimitDimension1, MaxAmbiguityLimitDimension1].对于两个歧义尺寸,将限制指定为2×2矩阵[minambiguitaMlimitdimension1,maxambiguitylimitdimension1;MACAMGIGIGENTLIMITDIMINSINN2,MAXAMBIGIGUTANTLIMITDIMINSONS2].歧义限制允许跨越边界群集以确保模糊的检测适当地聚集。

不明确的列X定义于AmbiguityDimension.财产。amblims定义与数据中相同单位的最小和最大歧义限制AmbiguityDimension.列的列X

例子:[0 20;-40 40]

依赖性

启用此参数,设置启示汉语真正的并设置了AmbiguityDimension.财产。

数据类型:

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

  • 真正的,阈值首先被估计为膝盖的平均值k-nn搜索曲线。然后将估计添加到长度的缓冲区中l设置在EpsilonHistoryLength财产。使用的最终epsilon计算为平均值l-Length epsilon历史缓冲区。如果EpsilonHistoryLength被设置为1,估计是无记忆的。无记忆意味着每个估计立即使用,没有移动平均平滑发生。

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

依赖性

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

数据类型:

输出参数

全部展开

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

数据类型:

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

数据类型:

对象功能

要使用对象函数,请将System Object™指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.,使用下面的语法:

释放(obj)

全部展开

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

例子

全部收缩

通过测量范围和多普勒来创建扩展对象的探测。假设最大无模糊距离为20米,无模糊多普勒跨度从 - 30. 赫兹, 30. 赫兹。此示例的数据包含在dataClusterDBSCAN.mat文件。数据矩阵的第一列表示范围,第二列表示多普勒。

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

  • 位于的明确目标 10 15

  • 位于多普勒的暧昧目标 10 - 30.

  • 在距离范围内定位的模糊目标 20. 15

  • 位于范围和多普勒的暧昧目标 20. 30.

  • 5假警报

创建一个clusterDBSCAN对象,并指定不通过设置执行消歧启示汉语错误的.求解聚类指数。

负载(“dataClusterDBSCAN.mat”);cluster1 = clusterdbscan(“MinNumPoints”,3,'epsilon'2,......'启示汉语、假);idx = cluster1 (x);

使用clusterDBSCAN阴谋对象函数显示集群。

情节(cluster1, x, idx)

图集群包含一个轴。标题为Clusters的轴包含10个类型为line, scatter, text的对象。

该曲线表明存在八个明显的簇和六个噪声点。这 '尺寸1 '标签对应于范围,而'维度2》标签对应多普勒。

接下来,创建另一个clusterDBSCAN对象并设置启示汉语真正的要指定跨越范围和多普勒歧义边界执行群集。

cluster2 = clusterdbscan(“MinNumPoints”,3,'epsilon'2,......'启示汉语,真的,'ambiguitydimension',[1 2]);

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

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

图集群包含一个轴。具有标题群集的轴包含6个类型的类型线,分散,文本。

利用二维笛卡儿位置数据聚类clusterDBSCAN.为了说明epsilon的选择如何影响聚类,请将与的聚类结果进行比较埃斯利昂设为1埃斯利昂设置为3。

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

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

图包含轴。轴包含类型线的对象。

创建一个clusterDBSCAN对象的埃斯利昂财产设定为1和MinNumPoints属性设为3。

clusterer运算= clusterDBSCAN ('epsilon',1,“MinNumPoints”,3);

在以下情况下群集数据埃斯利昂等于1。

idxEpsilon1 clusterer运算(x) =;

再次群集数据,但与埃斯利昂设置为3。的值可以更改埃斯利昂因为它是可调性的财产。

clusterer.epsilon = 3;idxepsilon2 = clusterer(x);

并排绘制聚类结果。通过将坐标轴句柄和标题传递到阴谋方法。情节表明了埃斯利昂设置为1,出现三个集群。当埃斯利昂为3时,两个较低的集群合并为一个。

hax1 =子图(1,2,1);绘图(群集,x,idxepsilon1,......“父”hAx1,“标题”'epsilon = 1')HAX2 =子图(1,2,2);绘图(群集,X,Idxepsilon2,......“父”hAx2,“标题”“ε= 3”

图中包含2个轴。标题为Epsilon = 1的轴1包含4个类型为散点、文本的对象。标题为Epsilon = 3的轴2包含3个类型为scatter, text的对象。

算法

全部展开

参考

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

[2]埃里希·舒伯特,Jörg桑达,马丁·埃斯特,汉斯-彼得·克里格尔,徐晓伟。2017。DBSCAN Revisited, Revisited: Why and How You Should (Still) Use DBSCANACM反式。数据库系统。42,3,第19条(2017年7月),21页。

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

[4] Thomas Wagner, Reinhard Feger, and Andreas Stelzer,“一种用于距离/多普勒/DoA测量的快速网格聚类算法”,第13届欧洲雷达会议的诉讼程序

[5] Mihael Ankerst, Markus M. Breunig, Hans-Peter Kriegel, Jörg Sander,《OPTICS:排序点识别集群结构》,Proc。ACM Sigmod'99 int。Conf。关于数据管理1999年,宾夕法尼亚州费城。

扩展能力

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

在R2021A介绍