有一组采样数据,横轴时间,绘制出来一张图,希望能标识出图中的尖峰,对“尖峰”没有量化定义,目前是两种,一是某一个时间点的激增,二是某一段时间的激增;从图上看就是突然某一个点比前后都高很多,或者是平滑处理后的包络图,某会有类似二次函数的突起。
这两种 尖峰能否使用现有的库,通过分析数据进行标注呢,确定出现尖峰的时间段即可
有一组采样数据,横轴时间,绘制出来一张图,希望能标识出图中的尖峰,对“尖峰”没有量化定义,目前是两种,一是某一个时间点的激增,二是某一段时间的激增;从图上看就是突然某一个点比前后都高很多,或者是平滑处理后的包络图,某会有类似二次函数的突起。
这两种 尖峰能否使用现有的库,通过分析数据进行标注呢,确定出现尖峰的时间段即可
1
F281M6Dh8DXpD1g2 Mar 11, 2021
异常值检测呗
|
2
lixuda Mar 11, 2021
sklearn 库看看,有个异常检查。
|
3
Wincer Mar 11, 2021
mark 一下,楼主有方案了麻烦告知一下,我最近也有类似的需求。目前尝试了 PCA,但是效果不是很理想。
|
4
guyskk0x0 Mar 11, 2021 via Android
Facebook Prophet
|
5
learningman Mar 11, 2021
你先用数学把“尖峰”定义好,然后翻译成代码就行了
|
6
no1xsyzy Mar 11, 2021
话说传统上异常值检测有:在回归时,添加某一个值会使得 r 值突然降低。
|
7
imn1 Mar 11, 2021
第一个想到应用场合是证券的放量
我目前的做法是设定斜率临界点,前后两点拉直线的斜率,但不太满意 此帖我会回看 |
8
sdushn OP @learningman emm,其实就是这个尖峰的数学定义没有讨论出很好的定义
|
9
superrichman Mar 11, 2021 via iPhone
我是通过计算 z-score 来找 outlier,有一定局限性
看看有其它好方法没 |
10
Macv1994 Mar 11, 2021 via Android
在上一家公司做过,我记得 numpy 还是 scipy 中有一个函数可以直接做尖峰检测
|
11
hasasiki Mar 11, 2021
现有库不太清楚,不过可以试试直接找到所有峰值,然后再按自己需求筛选,找峰值的算法就很多了
|
12
Vectors Mar 11, 2021
scipy 库,scipy.signal.find_peaks
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.find_peaks.html |
13
yesterdaysun Mar 12, 2021
之前用过 peakutils
|
14
sdushn OP @yesterdaysun 好用的,我目前也是采用了这个方案
|
15
necomancer Mar 14, 2021
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.find_peaks.html
一般这些算法都是基于小波变换,看看原理很简单的。 |