gpt4 book ai didi

c++ - 识别直方图中的局部最小值

转载 作者:可可西里 更新时间:2023-11-01 15:54:23 34 4
gpt4 key购买 nike

我有兴趣在大致类似的直方图中找到局部最小值

enter image description here

我想找到 109.258 处的局部最小值,最简单的方法是确定 109.258 处的计数是否低于某个时间间隔内的平均计数(包括 109.258 ).识别这个区间对我来说是最困难的部分。

至于此数据的来源,它是一个具有 100 个宽度不均匀的 bin 的直方图。每个 bin 都有一个值(显示在 x 轴上),以及落入该 bin 的样本数(显示在 y 轴上)。我要做的是找到拆分直方图的“最佳”位置。作为分类算法的一部分,拆分的每一侧都沿着二叉树传播。

我认为我最好的做法是尝试使用类似 Levenberg-Marquardt algorithm 的方法将曲线拟合到此直方图然后比较局部最小值以找到“最佳”值。 “最佳”的适当度量将包括该拆分的重要性的一些指示,它被测量为左侧间隔中的平均计数与右侧间隔中的平均计数之间的差异,然后也许如果有意义的话,用包含的计数对每个差异进行加权以获得“最佳”的综合测量值。

无论哪种方式,算法的计算复杂性都不是一个大问题,100 个 bin 大约是我预计会遇到的最大数量。但是,此计算将针对每个样本执行一次,因此保持它与 bin 数量成线性当然是理想的。

顺便说一句,我正在用 C++ 做所有事情,并使用 boost 库和 STL,所以在这方面没有什么是禁止的。

如有任何关于最佳实践的想法或见解,我们将不胜感激!

最佳答案

如果我理解正确,kmore 希望根据最大间隔(直方图计数和 bin 距离的乘积)划分两个“峰”。如果这是真的:

  1. 找到所有最大值。
  2. 对于每个最大构建矩形,如图所示。
  3. 找到具有最大白色区域的矩形,它为您提供了找到所需 bin 109.258 的 x 范围

关于c++ - 识别直方图中的局部最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889385/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com