python – dbscan – 最大集群跨度的设置限制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – dbscan – 最大集群跨度的设置限制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1809字,纯文字阅读大概需要3分钟。
内容图文
![python – dbscan – 最大集群跨度的设置限制](/upload/InfoBanner/zyjiaocheng/702/f41fd65c3d0041febb7c4206dbcdccd4.jpg)
根据我对DBSCAN的理解,您可以指定一个100米的ε,并且 – 因为DBSCAN在查找群集时会考虑密度可达性而不是直接的密度可达性 – 最终得到一个最大距离的群集在任何两点之间是> 100米在更极端的可能性中,似乎可以设置100米的epsilon并最终得到1公里的簇:
see [2][6] in this array of images from scikit learn作为可能发生的时间的示例. (我非常愿意被告知我是一个完全白痴,并且误解了DBSCAN,如果这就是这里发生的事情.)
是否存在基于密度的算法,如DBSCAN,但是考虑到群集中任意两点之间的最大距离的某种阈值?
解决方法:
DBSCAN确实没有对集群施加总大小限制.
epsilon值最好解释为分隔两个簇(最多可包含minpts-1个对象)的间隙的大小.
我相信,你实际上甚至都没有寻找聚类:聚类是发现数据结构的任务.结构可以更简单(例如k均值)或复杂(例如通过分层聚类和k均值发现的任意形状的聚类).
您可能正在寻找vector quantization – 将数据集减少到较小的代表集 – 或者set cover – 找到给定集合的最佳覆盖 – 而不是.
但是,我的印象是你不确定你需要什么以及为什么.
DBSCAN的一个优势在于它具有密度连接组件形式的结构的数学定义.这是一个强大的(除了一些罕见的边界情况)明确定义的数学概念,DBSCAN算法是发现这种结构的最佳效率算法.
然而,直接密度可达性不定义有用的(分区)结构.它只是不将数据分区为不相交的分区.
如果您不需要这种强大的结构(即您不像“结构发现”那样进行聚类,而只是想像在矢量量化中那样压缩数据),那么您可以尝试“冠层预聚类”.它可以看作是为聚类设计的预处理步骤.本质上,它就像DBSCAN,除了它使用两个epsilon值,并且不保证结构在任何方面都是最优的,但在很大程度上取决于数据的排序.如果你然后适当地预处理它,它仍然是有用的.除非您处于分布式设置中,否则冠层预聚类至少与完整的DBSCAN运行一样昂贵.由于松散的要求(特别是“簇”可能重叠,并且预期对象属于多个“簇”),因此更容易并行化.
哦,您可能也只是在寻找完整的链接层次聚类.如果将树形图切割到所需高度,则生成的簇应在所有两个对象之间具有所需的最大距离.唯一的问题是层次聚类通常是O(n ^ 3),即它不能扩展到大数据集. DBSCAN在O(n log n)中以良好的实现方式运行(具有索引支持).
内容总结
以上是互联网集市为您收集整理的python – dbscan – 最大集群跨度的设置限制全部内容,希望文章能够帮你解决python – dbscan – 最大集群跨度的设置限制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。