编辑 | blame | 历史 | 原始文档

极值点识别算法优化计划

问题分析

当前的极值点识别算法使用严格小于(<)的比较,无法识别有相同值相邻的最大值点。用户希望能够识别"最后一个阶段最大值",即连续相同值区域中的最后一个点或整个数据系列中的最大值区域。

技术实现计划

1. 修改数据处理服务

修改文件app/services/data_processing_service.py

优化功能
- 修改identify_local_maxima方法:调整比较逻辑,考虑值相等的情况
- 添加identify_phase_maxima方法:专门用于识别"最后一个阶段最大值"
- 更新analyze_extreme_points方法:使用新的识别逻辑

2. 具体实现细节

优化方案1:修改现有极值点识别算法

  • 将比较逻辑从严格小于(<)改为小于等于(<=)
  • 确保只选择连续相同值区域中的最后一个点

优化方案2:实现阶段最大值识别

  • 识别数据中的连续相同值区域
  • 对于每个区域,提取最后一个点作为该阶段的最大值
  • 同时保留传统的局部极大值识别

优化方案3:全局最大值增强

  • 识别整个数据系列中的全局最大值
  • 确保即使在有相同值的情况下也能正确识别

3. 测试与验证

  • 测试不同数据模式下的识别效果
  • 验证连续相同值区域的处理
  • 确保与现有功能的兼容性

预期成果

  • 能够正确识别有相同值相邻的最大值点
  • 能够识别"最后一个阶段最大值"
  • 保持与现有功能的无缝集成
  • 提高用户对数据趋势的理解

开发步骤

  1. 修改数据处理服务:更新极值点识别算法
  2. 测试新算法:验证不同数据模式下的识别效果
  3. 更新Streamlit仪表盘:确保新功能正确集成
  4. 性能优化:确保大数据集下的处理速度