查找连续变量中所有模式的最佳方法是什么?我正在尝试开发一个 java 或 python 算法来执行此操作。
我正在考虑使用核密度估计来估计变量的概率密度函数。之后,我们的想法是识别概率密度函数中的峰值。但我现在不知道这是否有意义以及如何在 Java 或 Python 的具体代码中实现它。
最佳答案
对“有多少种模式”这个问题的任何答案都必须涉及一些有关您认为可能答案的先验信息,并且任何结果都必须采用“p(模式数 = k | 数据) = nnn”的形式。有了这样的结果,你就可以弄清楚如何使用它了;至少有三种可能性:选择概率最大的一种,选择使某些成本函数最小化的一种,或者对这些概率的任何其他结果进行平均。
在序言中,我将推荐一个具有不同数量组件的混合密度模型。例如。具有 1 个分量的混合物,具有 2 个分量的混合物,3、4、5 等。请注意,对于 k 个分量,模式的最大可能数量为 k,但根据分量的位置和比例,模式可能会更少.
可能有许多库可以找到具有固定数量成分的混合物密度的参数。我的猜测是,您需要固定这些东西才能处理组件数量的后验概率。如果不看,我不知道模式数量的后验概率的公式,尽管计算出来可能很简单。
我为混合发行版编写了一些 Java 代码;请参阅:http://riso.sourceforge.net并查找源代码。毫无疑问还有很多其他的。
后续问题最好直接访问 stats.stackexchange.com。
关于machine-learning - 如何识别(多峰)连续变量中的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179095/