检测双峰分布

机器算法验证 时间序列 机器学习 分布 正态分布
2022-03-24 11:42:06

我有音频信号的直方图,它们具有双峰“正态”分布。我想要做的是检测这些亚群以便有一个阈值,这意味着将值划分为背景噪声和语音,背景噪声和语音因为每个都意味着有其正态分布。这是一个预处理步骤,因此可用于根据它做出以后的决策。

这是我的能量值时间序列(以 DB 为单位)并低于其相应的直方图

时间序列 直方图

时间序列 直方图

我正在考虑实施 K-Means 聚类算法来检测分布。现在我的问题是:

  1. 这是正确的解决方案吗?选择错误的初始方法让我担心算法将无法正确聚类。

  2. 分离这两个分布的其他解决方案是什么,我看过 GMM,但不确定它有什么帮助。

  3. 如果 K-Means 在某种程度上适合解决这样的问题,我应该如何选择初始均值,还是主要取决于数据?

请注意,我是这个领域的新手,所以如果我犯了任何可怕的错误,我希望能纠正我

2个回答

这看起来像是检测混合分布的分量的典型任务,其主题是有限混合模型如果您使用 R,则不需要实现 K-means 或其他聚类算法,因为已经有足够多的现有软件包可以做到这一点,甚至更多。

最受欢迎的单mixtools包之一 ( http://cran.r-project.org/web/packages/mixtools ) - 包含函数normalmixEM,它基于期望最大化算法,可用于将您的数据拟合到混合的正态分布。有关更多详细信息和示例,请参阅包文档和此博客文章:http ://exploringdatablog.blogspot.com/2011/08/fitting-mixture-distributions-with-r.html 。在阅读上述帖子之前,您可能会发现阅读混合分布的简要介绍会有所帮助:http: //exploringdatablog.blogspot.com/2011/06/brief-introduction-to-mixture.html

其他相关包包括rebmixhttp://cran.r-project.org/web/packages/rebmix)、(http://cran.r-project.org/web/packages/flexmixflexmix有关mclust详细信息,请见http://www.stat.washington.edu/mclusthttp://cran.r-project.org/web/packages/mclust)。

在Cross Validated上经常讨论执行拟合优度检验来估计正态分布的混合例如,查看以下讨论:Goodness of fit test for a mix in R

最后,您可能会感兴趣以下论文,因为它解决了与您的问题混合分析说话人识别相关的两个主题的交集我希望你会发现它有用:http ://smtp.intjit.org/journal/volume/12/7/127_2.pdf 。

我经常使用一种方案(干预检测),即使它不是时间序列数据来确定是否存在“截距变化”或平均值的变化。截距变化本质上是平均变化,或者换句话说是水平偏移。请发布您的数据,我会尽力帮助您。这两个图都向我暗示了在考虑了一些异常(一次脉冲)之后可能的截距变化。在统计学的第一门课程中,我们经常得到这样一个事实,即 n1 值在第 1 组中,n2 值在第 2 组中。在实际实践中,我们经常得到一列读数,可能是一个时间序列,目标是确定有多少组有。这实际上是一维判别分析的一种形式。