Machine learning Eps、DBSCAN中的哪些分数重要

Machine learning Eps、DBSCAN中的哪些分数重要,machine-learning,cluster-computing,cluster-analysis,dbscan,Machine Learning,Cluster Computing,Cluster Analysis,Dbscan,在DBSCAN中,如果我们有minPoints=3,并且我们想要确定一个点是否为核心点,那么您是将该点本身计算在Eps中,还是需要在其Eps中包含3个其他点?根据维基百科中的算法,点P的区域查询返回P的eps邻域内的所有点,包括P 这是算法(来自) DBSCAN(D、eps、MinPts) C=0 对于数据集D中的每个未访问点P 将P标记为已访问 neightrpts=regionQuery(P,eps) 如果sizeof(邻接点)=MinPts NeighborPts=与NeighborPts

在DBSCAN中,如果我们有minPoints=3,并且我们想要确定一个点是否为核心点,那么您是将该点本身计算在Eps中,还是需要在其Eps中包含3个其他点?

根据维基百科中的算法,点
P
的区域查询返回
P的
eps
邻域内的所有点,包括
P

这是算法(来自)

DBSCAN(D、eps、MinPts)
C=0
对于数据集D中的每个未访问点P
将P标记为已访问
neightrpts=regionQuery(P,eps)
如果sizeof(邻接点)=MinPts
NeighborPts=与NeighborPts连接的NeighborPts
如果P'还不是任何集群的成员
将P'添加到集群C
地区查询(P、eps)
返回P的eps邻域内的所有点(包括P)

由于核心点被定义为一个具有多个点的点,这些点与Eps一起被定义为
MinPts
,我想说的是,在确定它是否是核心点时,该点本身被计算在内。

DBSCAN是一个具有数据库上下文的算法

为了获得良好的性能,您需要一个能够使用索引加速此类查询的数据库—这将运行时从
O(n^2)
减少到
O(n log n)

如果向数据库发送范围查询,它将返回此区域内的所有对象,包括查询点。您必须手动从结果中删除查询点

但也从逻辑的角度来看:这是一个密度度量。为什么密度估计必须排除查询对象?它是数据集的一部分,它应该像任何其他对象一样对密度作出贡献


我看不出有任何理由从每个查询的数据集中删除查询点。

我认为您误解了我的问题,或者将其与其他问题混淆了。:)没有。“点本身”在数据库上下文中通常称为“查询点”。因为你在数据库中查询这一点的邻居。你完全正确,我读你的帖子有点快。对不起,谢谢你的重播!
DBSCAN(D, eps, MinPts)
   C = 0
   for each unvisited point P in dataset D
      mark P as visited
      NeighborPts = regionQuery(P, eps)
      if sizeof(NeighborPts) < MinPts
         mark P as NOISE
      else
         C = next cluster
         expandCluster(P, NeighborPts, C, eps, MinPts)

expandCluster(P, NeighborPts, C, eps, MinPts)
   add P to cluster C
   for each point P' in NeighborPts 
      if P' is not visited
         mark P' as visited
         NeighborPts' = regionQuery(P', eps)
         if sizeof(NeighborPts') >= MinPts
            NeighborPts = NeighborPts joined with NeighborPts'
      if P' is not yet member of any cluster
         add P' to cluster C

regionQuery(P, eps)
   return all points within P's eps-neighborhood (including P)