【问题标题】:How to identify the modes in a (multimodal) continuous variable如何识别(多模态)连续变量中的模态
【发布时间】:2018-12-13 05:09:52
【问题描述】:

找出连续变量中所有模式的最佳方法是什么?我正在尝试为此开发一个 java 或 python 算法。

我正在考虑使用核密度估计来估计变量的概率密度函数。之后,想法是识别概率密度函数中的峰值。但我现在不知道这是否有意义以及如何在 Java 或 Python 的具体代码中实现它。

【问题讨论】:

    标签: machine-learning statistics probability probability-density kernel-density


    【解决方案1】:

    对“多少模式”问题的任何回答都必须包含一些关于您认为可能的答案的先验信息,并且任何结果必须采用“p(模式数 = k | 数据)= nnn”的形式。给定这样的结果,您可以弄清楚如何使用它;至少有三种可能性:选择概率最大的一种,选择最小化某个成本函数的一种,或者对这些概率的任何其他结果进行平均。

    在开场白之后,我将推荐一个混合密度模型,其中包含不同数量的组件。例如。 1 个分量的混合、2 个分量的混合、3、4、5 等。请注意,对于 k 个分量,最大可能的模态数是 k,尽管根据分量的位置和比例,可能有更少的模态.

    可能有许多库可以找到具有固定数量成分的混合密度的参数。我的猜测是,您将需要使用这些东西来处理组件数量的后验概率。不看,我不知道模式数量的后验概率的公式,尽管它可能很简单。

    我为混合分发编写了一些 Java 代码;请参阅:http://riso.sourceforge.net 并查找源代码。毫无疑问还有很多其他的。

    后续问题最好直接发送至 stats.stackexchange.com。

    【讨论】:

    • 我对这种方法的担忧是混合分布不一定是多峰的。尝试查看 N(0,1) 和 N(2,1) 的等权混合 - 这些分布几乎没有重叠,但混合是单峰的。
    • @Aniko 是的,没错——组件的数量是组件的最大数量,但实际数量可能会更少。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多