最近在搞毕业论文的预测部分,我收集到的销售数据波动性较大,尤其是存在尖峰数据,我导师给我提供了两种降噪的方法,一种是小波分解,一种是经验模式分解。这两种方法按照老师的话来说就是方法很旧,但是很有效。关于小波分解,我主要的工作如下

1、导入csv数据,

#导入相关库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math
import pywtpath = r"D:\桌面文件夹哦\数据统计\小虫\总训练集 - 副本 (2).CSV"  # 原数据路径# 提取数据
data = pd.read_csv(path)
data = data.iloc[:, 0]  # 取第一列数据
plt.plot(data)
plt.show()

2、根据设计的优化函数,将数据输入进去,进行降噪(这一步不用改,封装好的)

def sgn(num):if (num > 0.0):return 1.0elif (num == 0.0):return 0.0else:return -1.0def wavelet_noising(new_df):data = new_dfdata = data.values.T.tolist()  # 将np.ndarray()转为列表w = pywt.Wavelet('sym8')  # 选择sym8小波基[ca5, cd5, cd4, cd3, cd2, cd1] = pywt.wavedec(data, w, level=5)  # 5层小波分解length1 = len(cd1)length0 = len(data)Cd1 = np.array(cd1)abs_cd1 = np.abs(Cd1)median_cd1 = np.median(abs_cd1)sigma = (1.0 / 0.6745) * median_cd1lamda = sigma * math.sqrt(2.0 * math.log(float(length0), math.e))  # 固定阈值计算usecoeffs = []usecoeffs.append(ca5)  # 向列表末尾添加对象# 软硬阈值折中的方法a = 0.5for k in range(length1):if (abs(cd1[k]) >= lamda):cd1[k] = sgn(cd1[k]) * (abs(cd1[k]) - a * lamda)else:cd1[k] = 0.0length2 = len(cd2)for k in range(length2):if (abs(cd2[k]) >= lamda):cd2[k] = sgn(cd2[k]) * (abs(cd2[k]) - a * lamda)else:cd2[k] = 0.0length3 = len(cd3)for k in range(length3):if (abs(cd3[k]) >= lamda):cd3[k] = sgn(cd3[k]) * (abs(cd3[k]) - a * lamda)else:cd3[k] = 0.0length4 = len(cd4)for k in range(length4):if (abs(cd4[k]) >= lamda):cd4[k] = sgn(cd4[k]) * (abs(cd4[k]) - a * lamda)else:cd4[k] = 0.0length5 = len(cd5)for k in range(length5):if (abs(cd5[k]) >= lamda):cd5[k] = sgn(cd5[k]) * (abs(cd5[k]) - a * lamda)else:cd5[k] = 0.0usecoeffs.append(cd5)usecoeffs.append(cd4)usecoeffs.append(cd3)usecoeffs.append(cd2)usecoeffs.append(cd1)recoeffs = pywt.waverec(usecoeffs, w)  # 信号重构return recoeffs

3、输出降噪后的数据,导出一份新的csv文件

data_denoising = wavelet_noising(data)  # 调用函数进行小波阈值去噪
print(data_denoising)
plt.plot(data_denoising)  # 显示去噪结果
plt.show()
df = pd.DataFrame(data_denoising)
df.to_csv(r"D:\桌面文件夹哦\数据统计\小虫\去噪数据.csv",float_format='%.1f')#去噪后数据保存路径

注意:在将去噪后数据导入到新的csv文件中,要先把数据以DataFrame的格式转化过来。即pd.DataFrame(data_denoising)

小波分解处理非平稳时序数据(降噪)相关推荐

  1. 传统语音增强——基于小波分解的语音降噪算法

    一.小波分析的意义 在传统的傅里叶分析中,信号完全是在频域展开的,不包含任何时频的信息.因为丢弃的时域信息对某些应用同样重要,所以出现很多能表征时域和频域信息的信号分析方法,如短时傅里叶变换.Gabo ...

  2. 基于小波分解与LSTM的城市轨道短时客流预测

    1.文章信息 文章题为<A novel prediction model for the inbound passenger flow of urban rail transit>,是一篇 ...

  3. 哈儿小波分解和重构(降维和升维)实现算法

    [0]README 0.1)本文旨在讲解 哈儿小波变换(分解和重构)进行数据的降维和升维: [timestamp: 1703281610]时隔几个月再来review 哈儿小波变换算法的具体思路: 1) ...

  4. 【小波变换】离散小波分解Discrete Wavelet Transform

    此篇博客记录自学离散小波分解的相关内容,以后若有更多理解在此篇更新. 一. 为什么需要离散小波分解    除离散变换外,还有连续小波分解,通过改变分析窗口大小,在时域上移动窗口和基信号相乘,最后在全时 ...

  5. C语言实现小波分解,提取近似与细节分量,包含详细例程

    C语言实现小波分解,提取近似与细节分量,包含详细例程 声明 本文的C语言实现小波分解非本人原创,均参考了网络上的文章(详见最后的参考资料),程序主要来自李承宇的文章和程序. 我只对程序进行了少量的修改 ...

  6. 基于小波神经网络的短期网络流量数据预测

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB核心程序 .......... ...

  7. KDD 2018 | 小波分解网络用于可解释的时间序列分析

    关注微信公众号"时序人"获取更好的阅读体验 时间序列学术前沿 NeurIPS 2020 | 时间序列相关论文一览 ICML 2020 | 时间序列相关论文一览 KDD 2020 | ...

  8. 多元经验模态分解_交通运输|基于小波分解和长短时记忆网络的地铁进站量短时预测...

    山东科学 ›› 2019, Vol. 32 ›› Issue (4): 56-63.doi: 10.3976/j.issn.1002-4026.2019.04.008 摘要: 针对城市地铁车站进站客流 ...

  9. 对于小波分解和傅立叶分解的理解

    记得,在以前的博文中,有过这样的描写,pca和ica其实是在寻找一组基.在ica中,这组基是独立的:在pca中,这组基是正交的. 如果,限制在fmri研究的范畴下,ica和pca都是在找一组图像基以及 ...

最新文章

  1. 中国工程院《全球工程前沿2020》报告在京发布
  2. wordpress必装的插件 wp最常用的十个插件
  3. python内核大小_关于keras.layers.Conv1D的kernel_size参数使用介绍
  4. Paw —— 比Postman更舒服的API利器
  5. 【单机实现系列】SharePoint2010与Exchange Server2010 结合
  6. Java I/O系统之OutputStream
  7. linux下赋予普通用户管理员权限
  8. iis展示下载 MP4视频的一些心得
  9. 经典合成器插件 – LennarDigital Sylenth1 v3.067 WiN
  10. java excel添加批注
  11. java同步关键字_线程同步关键字之 synchronized
  12. 杀人游戏规则总结(转自龙的天空)
  13. 第十三届蓝桥杯C/C++ 大学B组题解
  14. 团队管理的四大挑战——用人篇
  15. 大数据开发必备面试题Hive篇
  16. Terracotta配置文件
  17. 天猫精灵对接智能设备
  18. 私有DNS服务器有什么好处
  19. 网络规划设计师水平考试备考资料(9.网络分析与设计案例)
  20. 李永乐复习全书概率论与数理统计 第五、六章 大数定律和中心极限定理及数理统计的基本概念

热门文章

  1. 如何利用U盘进行重装win10系统(2020.11亲测可行)
  2. 利用shell脚本批量判断目标ip存活情况
  3. UCOSII源码分析五——任务优先级与任务调度
  4. CI框架获取控制器名和方法名
  5. vscode中的网易云插件听歌无声音的解决方法(ubuntu)
  6. 【Arduino】点亮灯和灯闪烁实验
  7. OpenCV3.X 编译 ——libpng库问题相关解决方法
  8. 安卓手机如果清楚微信内置浏览器cookie
  9. SAAS建站网站和传统建站的区别
  10. 武士与魔王游戏v1.0