这是一个我试图做的“非常简化的”例子,我是机器学习的新手。
我有一个连续的数值数据输入流。我想检测数据中的特定变化,比如心跳监测器中的峰值。
我该如何使用机器学习来实现这个目标?
回答:
这取决于你如何定义峰值。如果你将峰值定义为数值上升10点或更多,你可以尝试如下方法:
import numpy as npmin_peak_diff = 10arr = np.array([3,5,10,42,4,3,6,66,8,12,7,5])ind = np.add(np.where(arr[1:] >= arr[:-1] + min_peak_diff), 1)print('peak indexes:', ind)print('peak values:', arr[ind])
结果:
peak indexes: [[3 7]]peak values: [[42 66]]
但如果你真的想使用机器学习方法,你可以参考以下资源:
- scikit-learn关于此主题的页面(有很多方法) https://scikit-learn.org/stable/modules/outlier_detection
- Python异常值检测库 https://github.com/yzhao062/pyod