gpt4 book ai didi

r - DBSCAN 用于按位置和密度对数据进行聚类

转载 作者:行者123 更新时间:2023-11-30 08:25:13 25 4
gpt4 key购买 nike

我使用方法 dbscan::dbscan 来按位置和密度对数据进行聚类。

我的数据如下所示:

str(data)
'data.frame': 4872 obs. of 3 variables:
$ price : num ...
$ lat : num ...
$ lng : num ...

现在我使用以下代码:

EPS = 7
cluster.dbscan <- dbscan(data, eps = EPS, minPts = 30, borderPoints = T,
search = "kdtree")
plot(lat ~ lng, data = data, col = cluster.dbscan$cluster + 1L, pch = 20)

但结果根本不令人满意,点并没有真正聚集。

enter image description here

我希望能够很好地定义集群,如下所示: enter image description here

我还尝试使用效果更好的决策树分类器tree:tree,但我无法判断它是否真的是一个好的分类。

文件:

http://www.file-upload.net/download-11246655/file.csv.html

问题:

  • 有可能实现我想要的吗?
  • 我使用的方法正确吗?
  • 我应该更多地使用这些参数吗?如果是,用哪个?

最佳答案

这是使用全新 HDBSCAN* 算法仔细基于密度的聚类的输出。

使用半正矢距离,而不是欧几里德距离!

它确定了一些比周围环境密度更高的 50 多个区域。在此图中,某些簇看起来好像只有 3 个元素,但它们确实有更多元素。

enter image description here

最外面的区域,这些是根本不属于任何簇的噪声点!

(使用的参数:-verbose -dbc.in file.csv -parser.labelIndices 0,1 -algorithm clustering.hierarchical.extraction.HDBSCANHierarchyExtraction -algorithm SLINKHDBSCANLinearMemory -algorithm.distancefunction geo.LatLngDistanceFunction -hdbscan.minPts 20 -hdbscan.minclsize 20)

OPTICS 是另一种基于密度的算法,结果如下:

enter image description here

同样,我们有一个带有红点的“噪声”区域根本不密集

使用的参数:-verbose -dbc.in file.csv -parser.labelIndices 0,1 -algorithm clustering.optics.OPTICSXi -opticsxi.xi 0.1 -algorithm.distancefunction geo.LatLngDistanceFunction -optics.minpts 25

该数据集的 OPTICS 图如下所示:

enter image description here

你可以看到有很多小山谷对应着簇。但这里没有“大”结构。

您可能正在寻找这样的结果:

enter image description here

但事实上,这是一种将数据分成大块的无意义且相当随机的方式。当然,它可以最大限度地减少方差;但它根本不关心数据的结构一个簇内的点通常比不同簇中的点有更少的共同点。只需查看红色、橙色和紫色簇之间边界上的点即可。

最后但并非最不重要的一点是,老前辈:具有完整链接的层次聚类:

enter image description here

和树状图:

enter image description here

(使用的参数:-verbose -dbc.in file.csv -parser.labelIndices 0,1 -algorithm clustering.hierarchical.extraction.SimplifiedHierarchyExtraction -algorithm AnderbergHierarchicalClustering -algorithm.distancefunction geo.LatLngDistanceFunction -hierarchical.linkage CompleteLinkageMethod -hdbscan.minclsize 50)

还不错。完整的链接对于此类数据也非常有效。但您可以合并或拆分这些集群中的任何一个。

关于r - DBSCAN 用于按位置和密度对数据进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34991978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com