algorithm - 数据集中的组检测

标签 algorithm statistics probability feature-detection

假设一组数据点,例如此处绘制的一个数据点(此图并非针对我的问题,只是用作一个合适的示例):

目视检查散点图,很明显数据点形成两个“组”,一些随机点显然不属于任何一个。

我正在寻找一种算法,它可以让我:

  • 从两个或多个维度的数据集开始。
  • 在事先不知道可能存在多少(或是否存在)的情况下从数据集中检测此类群体
  • 检测到组后,“询问”组模型,看新样本点是否适合任何组

最佳答案

有很多选择,但如果您对新数据点属于特定混合的概率感兴趣,我会使用概率方法,例如通过最大似然估计或贝叶斯估计的高斯混合建模。

mixtures models is implemented in Matlab 的最大似然估计.

您对组件数量未知的要求使您的模型更加复杂。占主导地位的概率方法是先于混合分布放置狄利克雷过程,并通过某种贝叶斯方法进行估计。例如,参见 this paper on infinite Gaussian mixture models . DP 混合模型会给你推断组件的数量和每个元素所属的组件,这正是你想要的。或者,您可以根据组件数量执行模型选择,但这通常不太优雅。

DP mixture models模型的实现有很多,但不一定都那么方便。例如,这是一个 Matlab implementation .

您的图表表明您是 R 用户。在这种情况下,如果您正在寻找预包装的解决方案,您的问题的答案就在这个 Task View for cluster analysis 上。 .

关于algorithm - 数据集中的组检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052321/

相关文章:

algorithm - 从非常大的集合中生成看似随机排列而不重复的有效方法?

c++ - 随机字符串数组的选择排序

algorithm - 国际象棋引擎中的 slider 生成

r - 给定从连续单变量分布中得出的一组随机数,找到分布

text - 确定文本正文是否包含有效单词或仅包含 "gibberish"

R 聚类分析和具有相关矩阵的树状图

algorithm - 如何从二叉搜索树中均匀随机地返回一个节点?

c++ - 如何解决这个矩阵问题以收集所有种子?

python - 你能在 python 中复制 matlab 的旧伪随机数生成器吗?

random - 如何从指定的离散分布生成随机数?