带 R 的 DBSCAN 包括周期性边界条件

DBSCAN with R including periodic boundary condition

我在 R 编程语言中使用以下语句在我的 3D 数据分析中进行基于密度的聚类-

clusterstry <- dbscan(styrenexyz, 0.20, MinPts =20, method = "hybrid", showplot = 1, countmode = 1:10,100,1000)

但是,这个epsilon (=20)不能算周期性边界条件的情况。

有人可以建议我如何计算周期性边界条件吗?

您可以创建自己的距离函数,而不是使用欧氏距离。

然后你就可以很容易地实现你的周期性边界条件了。如果您进行搜索,可以找到 Python 的示例,这可能会对您有所帮助。

或者,您可以添加一个额外的维度来强制实施周期性边界条件。

我建议使用自定义距离函数而不是额外维度以避免任何失真。您可以在 R 中创建自定义距离函数,方法是编写您自己的函数,然后将结果提供给 dbscan()optics()

您会注意到它接受数据矩阵或距离矩阵。你可以让R知道你的对象是一个函数为as.dist()的距离矩阵。这是来自 stats 包。