首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚类:无单点聚类

聚类:无单点聚类
EN

Stack Overflow用户
提问于 2014-07-06 23:52:36
回答 2查看 192关注 0票数 2

我有4维数据,需要对其进行聚类,以便为每个聚类建立最小体积边界椭球。我不想有单点集群,或者至少是尽可能少的单点集群,因为我们不能用一个单点构建一个椭球置信度区域。在我的问题中,没有预先给出集群的数量。因此,我使用Scikit-learn的亲和力传播- http://scikit-learn.org/stable/modules/clustering.html#affinity-propagation来估计聚类的数量,并从数据中执行聚类。但是这种方法给了我太多的单点聚类。你能就如何解决这个问题给出一个见解吗?

附言:为了给你更多的信息,我正在研究椭球嵌套抽样,用于贝叶斯证据计算。

EN

回答 2

Stack Overflow用户

发布于 2014-07-09 21:12:24

我不知道你是否坚持亲和传播,但是使用DBSCAN,你可以通过算法参数,eps和minPts来实现你想要的。

更大的eps意味着密度较小的集群可以被检测到,并且附近的集群也将被合并。

更大的minPts意味着你会将更多的数据标记为噪声。

票数 1
EN

Stack Overflow用户

发布于 2020-12-24 16:25:47

亲和力传播没有椭球的概念,所以我不确定它能做你想要的事情。

MultiNest通过X均值聚类的变体解决了这一问题。基本上,你首先做一个覆盖所有点的包裹椭球。然后,确定最重要的轴,并在两端放置两个k均值椭球,然后将它们收敛。现在您可以决定两个椭球体是否比单个椭球体使用的体积小得多。然后递归地重复该过程。nestle是一个开放源代码的实现,具有非常清晰的代码:https://github.com/kbarbary/nestle/

或者,您也可以在每个点周围放置一个椭球体,并使用K折叠或自举来确定半径。这是MLFriends使用的;实现,解释和动画在:https://johannesbuchner.github.io/UltraNest/method.html这里可以首先使用样本协方差选择椭球协方差,当检测到群集时,可以将它们共同中心并确定公共样本协方差。为了确定半径,您省略了一些测试点,并确保训练点周围的椭球足够大,以恢复测试点。这是非常稳定的,并且没有参数。

探索DBSCAN也可能很有趣。然而,最终你需要坚硬的,而不是模糊的提案表面来进行嵌套采样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24597637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档