一、简单移动平均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相关推荐

  1. Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)

    捕捉趋势最普遍的方法为移动平均线,根据求平均的方式不同,移动平均数又可分为简单移动平均数(Simple Moving Average, SMA),加权移动平均数(Weighted Moving Ave ...

  2. paddlepaddle 20 指数移动平均(ExponentialMovingAverage,EMA)的实现与使用(支持静态图与动态图)

    指数移动平均(ExponentialMovingAverage,EMA)是以指数式递减加权的移动平均,每一次更新都对上一次保留的权重按照decay进行衰减.其计算方式为pram_n'=(pram_n' ...

  3. 时间序列分析 - 移动平均SMA, WMA, EMA(EWMA) 之理论公式

    原文: https://zh.wikipedia.org/w/index.php?title=%E7%A7%BB%E5%8B%95%E5%B9%B3%E5%9D%87&variant=zh-c ...

  4. 时间序列分析 - 移动平均SMA, EMA(EWMA) 之python

    pandas: pandas.DataFrame.rolling pandas.DataFrame.ewm pandas.DataFrame.mean 其中rolling可以指定窗口类型win_typ ...

  5. python 移动平均函数_「EMA系列之I」如何理解EMA指数移动平均值以及Python实现

    「EMA系列」打算写三篇,从最基本的到比较深入的都会涉及,谈谈对EMA及其使用的理解. 这篇文章是第一篇Part 1,主要讲讲如何用比较直接的方式去理解经典EMA. EMA的加权平均值定义 EMA是E ...

  6. 【量化投资实训】基于MATLAB实验三.指数移动平均SMA

    函数原型 function SmaValue = SMA(Price, Len, Weight) matalab实现 function SmaValue = SMA( Price,Len,Weight ...

  7. python 移动平均线_Python 计算EMA(指数移动平均线)

    总结 使用递归和循环两种方法来完成 python环境下循环相比于递归更快,更适应极端样本情况 递归 def _ema(arr,i=None): N = len(arr) α = 2/(N+1) #平滑 ...

  8. 移动平均滤波器 matlab,移动平均滤波的原理---matlab函数的实现smooth

    移动平均滤波基于统计规律,将连续的采样数据看成一个长度固定为N的队列,在新的一次测量后,上述队列的首数据去掉,其余N-1个数据依次前移,并将新的采样数据插入,作为新队列的尾:然后对这个队列进行算术运算 ...

  9. python 移动平均线_6移动平均线预测交易

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

最新文章

  1. ICLR 2020| 最新NAS benchmark:0.1秒完成NAS算法搜索
  2. excel in python
  3. 兰州现超级“牛大”碗比腰粗:牛肉面吃出火锅范
  4. 在一行上添加一个简单的if-then-else语句[重复]
  5. linux shell read 从键盘或标准输入中读取文本
  6. PAT甲级1045 Favorite Color Stripe (30 分):[C++题解]最佳彩色带、DP、公共子序列变形
  7. 你一定会用的18个linux网络监控工具
  8. zzuli 2269:minval
  9. 静态密码已经OUT 探索身份验证新方式
  10. 计算机二级题库access选择题_计算机二级access选择题题库
  11. 获取全国所有省份,市区县的中文名和英文名
  12. win10应用及应用商店闪退有效解决办法
  13. java吉他游戏_[Java]吉他谱浏览器 0.1
  14. 通俗解释「什么是云计算」
  15. MySQL主从- slave跳过错误
  16. android studio signingconfigs 打正式包,Android-SigningConfigs打包配置
  17. [论文总结] 种群、保护与生态遗传学笔记
  18. 海康摄像头检测摄像头是否处于在线状态
  19. win10禁用笔记本原本键盘
  20. 《计算机网络》第七版第一章总结及部分课后习题答案

热门文章

  1. mysql时间 注入 sleep_mysql注入sleep语句引发的拒绝服务
  2. 语雀导出html,博客搭建
  3. Jmeter性能测试环境安装
  4. VUE-鼠标悬浮到目标区域变成小手模样
  5. 宁波送餐机器人_宁波这家酒店有了机器人服务员 卖萌、引路、送餐样样行
  6. 项目文档word格式规范
  7. 金蝶K3系统BOM新增BOM编号与父项物料编码同步需求实现
  8. 真北敏捷读书 | OKR跟Scrum一样,都是组织的神经系统
  9. 【生产调度优化】使用simulink实现生产调度优化
  10. vue-shop电商管理后台