简单移动平均SMA和指数移动平均EMA
生活随笔
收集整理的這篇文章主要介紹了
简单移动平均SMA和指数移动平均EMA
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、簡單移動平均SMA
最近有一個平滑的需求:
設置平滑期數h(奇數),每期點平滑方法是:取該期前后共m期(含本期)點的平均值。如果前或后沒有足夠的點則不用平滑。
特別地,如果取m=1,那就是取本期即可,相當于不平滑;如[1,3,2,4] -> [1,3,2,4]
如果取m=3,那就是取本期前一期、本期以及本期后一期的平均值;如[1,3,2,4] -> [1,2,3,4],其中開頭的1和末尾的4是不用平滑的,因為前或后沒有足夠的點。2 = (1+3+2)/3,3 = (3+2+4)/3
這種平滑方式就是簡單移動平均,不過保留了兩端的點。下面給出帶兩端和不帶兩端的兩種方式。
1、不帶端點:
import numpy as np a = [1,4,5,10,2,8,9] h = 3 # 注意要單獨處理一下h=1的情況 if h==1: # 相當于不平滑pass else:print(np.convolve(a, np.ones(h)/h, mode='valid')) Out[13]: array([3.33333333, 6.33333333, 5.66666667, 6.66666667, 6.33333333])2、帶端點
import numpy as np a = [1,4,5,10,2,8,9] h = 3 # 注意要單獨處理一下h=1的情況 if h==1: # 相當于不平滑pass else:half_h = h // 2b[half_h:-half_h] = np.convolve(a, np.ones(h)/h, mode='valid')print(b) Out[20]: [1, 3.333333333333333, 6.333333333333333, 5.666666666666667, 6.666666666666666, 6.333333333333333, 9]二、指數移動平均EMA
接觸這個是學弟做深度學習相關畢設問我的,用于對模型參數做平均。
普通的EMA可以看這個實現移動平均指數平滑python實現
但在深度學習方面的應用主要還是看這兩個理解吧
EMA(指數移動平均)及其深度學習應用
【煉丹技巧】指數移動平均(EMA)的原理及PyTorch實現
總結
以上是生活随笔為你收集整理的简单移动平均SMA和指数移动平均EMA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Acrelcloud-6000安全用电管
- 下一篇: 企业老板学会整理申请icp许可证材料节省