极值点识别算法优化计划
问题分析
当前的极值点识别算法使用严格小于(<)的比较,无法识别有相同值相邻的最大值点。用户希望能够识别"最后一个阶段最大值",即连续相同值区域中的最后一个点或整个数据系列中的最大值区域。
技术实现计划
1. 修改数据处理服务
修改文件:app/services/data_processing_service.py
优化功能:
- 修改identify_local_maxima方法:调整比较逻辑,考虑值相等的情况
- 添加identify_phase_maxima方法:专门用于识别"最后一个阶段最大值"
- 更新analyze_extreme_points方法:使用新的识别逻辑
2. 具体实现细节
优化方案1:修改现有极值点识别算法
- 将比较逻辑从严格小于(
<)改为小于等于(<=)
- 确保只选择连续相同值区域中的最后一个点
优化方案2:实现阶段最大值识别
- 识别数据中的连续相同值区域
- 对于每个区域,提取最后一个点作为该阶段的最大值
- 同时保留传统的局部极大值识别
优化方案3:全局最大值增强
- 识别整个数据系列中的全局最大值
- 确保即使在有相同值的情况下也能正确识别
3. 测试与验证
- 测试不同数据模式下的识别效果
- 验证连续相同值区域的处理
- 确保与现有功能的兼容性
预期成果
- 能够正确识别有相同值相邻的最大值点
- 能够识别"最后一个阶段最大值"
- 保持与现有功能的无缝集成
- 提高用户对数据趋势的理解
开发步骤
- 修改数据处理服务:更新极值点识别算法
- 测试新算法:验证不同数据模式下的识别效果
- 更新Streamlit仪表盘:确保新功能正确集成
- 性能优化:确保大数据集下的处理速度