大约两周前,我问(Number of peaks in histogram)快速算法检测直方图中的高斯峰数。一个非常好的方法:建议使用近似高斯混合(AGM)。
我通过article并试图在我的C ++应用程序中实现这种方法,具有用于控制EM收敛的类似日志功能。我不得不说这个方法非常快,它可以看到解决方案。但是,我无法在合适的时间停止清洗。我想知道这是不是由我的数据引起的。
问题解释:
在我的数据中有5个峰值(见图here),平均值为(100,200,300,400,500),高度差异很大(第一个比第二个高4倍,第二个是比第三个高出3倍......)
当我将参数设置为(threshold = 0.6,expansion_factor = 0.25)时,我得到了这个解决方案:http://pastebin.com/4P5w2sDx(结果位于文件的底部)。算法以三个峰值结束,其中只有中间的一个似乎是正确的。
我尝试使用参数和(阈值= 0.55,expansion_factor = 0.50)我收到http://pastebin.com/y8qvVL5V
结果中又有三个峰值,但是:
我可能在实施中犯了一些错误,或者你可以指出错误可能在哪里,当两个最重要的峰值识别为单个峰值时。