dbscan在R中的绘图结果

dbscan在R中的绘图结果,r,visualization,cluster-analysis,data-visualization,dbscan,R,Visualization,Cluster Analysis,Data Visualization,Dbscan,非常感谢您的意见、建议或解决方案,谢谢 我正在使用R中的fpc包对一些非常密集的数据(3组40000个点,范围-3,6)进行dbscan分析 我已经找到了一些聚类,我只需要绘制重要的聚类。问题是,我有一个单一的集群(第一个),其中大约有39000个点。我需要绘制除此之外的所有其他群集 dbscan()。它不像数据帧那样被索引(但也许有一种方法可以这样表示它?) 我可以使用基本的plot()调用来绘制dbscan类型。但是,正如我所说,这将绘制出不相关的39000个点 tl;博士: 如何仅绘制db

非常感谢您的意见、建议或解决方案,谢谢

我正在使用R中的
fpc
包对一些非常密集的数据(3组40000个点,范围-3,6)进行dbscan分析

我已经找到了一些聚类,我只需要绘制重要的聚类。问题是,我有一个单一的集群(第一个),其中大约有39000个点。我需要绘制除此之外的所有其他群集

dbscan()。它不像数据帧那样被索引(但也许有一种方法可以这样表示它?)

我可以使用基本的
plot()
调用来绘制dbscan类型。但是,正如我所说,这将绘制出不相关的39000个点

tl;博士:
如何仅绘制
dbscan
数据类型的特定簇?

在不了解
dbscan
的具体情况下,我建议您查看函数
smoothScatter
。当您有太多的点无法理解数据时,它对于检查散点图中的主要模式非常有用。

如果您查看帮助页(
?dbscan
),它与所有其他部分一样,被组织到标有描述、用法、参数、详细信息和值的部分中。值部分描述函数
dbscan
返回的内容。在本例中,它只是一个列表(一个标准的R数据类型),包含一些组件

cluster
组件只是一个整数向量,其长度等于数据中的行数,该行数指示每个观测值是哪个集群的成员。因此,您可以使用此向量对数据进行子集,以仅提取您想要的聚类,然后仅绘制这些数据点

例如,如果我们使用帮助页面中的第一个示例:

set.seed(665544)
n <- 600
x <- cbind(runif(10, 0, 10)+rnorm(n, sd=0.2), runif(10, 0, 10)+rnorm(n,
    sd=0.2))
ds <- dbscan(x, 0.2)

绘制
DBSCAN
结果最合理的方法可能是使用alpha形状,将半径设置为epsilon值。Alpha形状与凸面外壳密切相关,但它们不一定是凸面的。alpha半径控制允许的非凸面量

这与密度连接对象的
DBSCAN
群集模型密切相关,因此将为您提供对集合的有用解释


由于我没有使用
R
,我不知道
R
的alpha形状功能。据推测,谷歌上有一个名为alphahull的软件包。

@droops-很高兴听到这个消息!如果这真的解决了你的问题,考虑点击它旁边的复选标记。这将帮助将来发现这个问题的人知道这个答案是有用的,通常会增加StackOverflow的价值。
#Plot only clusters 1, 2 and 3
plot(x[ds$cluster %in% 1:3,])