日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单移动平均SMA和指数移动平均EMA

發布時間:2024/1/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单移动平均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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。