dbscan在R中的绘图结果
非常感谢您的意见、建议或解决方案,谢谢 我正在使用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
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,])