AI预测相关目录
AI预测流程,包括ETL、算法策略、算法模型、模型评估、可视化等相关内容
- EEMD策略及踩坑
一、EEMD介绍
EMD(经验模态分解)和EEMD(增强经验模态分解)是两种常用的数据分解方法。EMD最初由新加坡南洋理工的黄教授首先开发,可以将一个复杂的时间序列分解成一系列简单的正弦和余弦波。由于存在模态混叠和端点效应现象,法国的Handrin等人用EMD对白噪声分解后的结果进行统计,提出了基于噪声辅助分析的改进EMD方法,即集合经验模态分解(EEMD)。
EEMD是EMD的改进方法,通过增加随机性来提高分解的性能。在时间序列分析中,EMD和EEMD被广泛用于金融数据分析、信号处理、模式识别等领域。
EMD和EEMD是一种自适应数据分解方法,它基于信号本身的局部时间尺度特征进行分解,无须关于待分析信号的先验知识。任意振动信号首先被分解成若干本征函数(Intrinsic Mode Function,IMF),然后对每个IMF 计算瞬时频率和瞬时幅值得到振动响应分量的局瞬谱,汇总所有IMF的局瞬谱就得到振动信号的局瞬谱。
由于在时间和频率空间均具有高分辨率,EMD和EEMD能清晰描述动力系统振动响应的时频分布;由于该方法能准确捕捉动力响应的频率调制现象,可据此来定义动力系统的非线性指标和非稳定指标。
二、EEMD用途
用于与深度学习等算法模型结合,是一种信号处理策略,目前我在时序预测上,用到了类似的方法。
例如EEMD-LSTM模型、EEMD-LSTM模型、EEMD-VDM-LSTMD等。
诸如LMD-VMD-LSTM模型、VMD-LSTM模型也与之类似。
三、安装踩坑
这个是写文章记录的主要目的!!!
安装指令:
pip install EMD-signal -i -i https://pypi.tuna.tsinghua.edu.cn/simple
不知道兄弟们啥情况,我是安装成功后死活import不进来
查到需要到库的安装路径下改名成如下样子!!
四、简单用法
代码如下(示例):
def ceemdan_decompose(series=None, trials=10, num_clusters=3):
decom = CEEMDAN() # 创建CEEMDAN对象
decom.trials = trials # 设置迭代次数
df_ceemdan = pd.DataFrame(decom(series.values).T) # 使用CEEMDAN对数据进行分解
df_ceemdan.columns = ['imf'+str(i) for i in range(len(df_ceemdan.columns))] # 为每个分解的模态函数命名
return df_ceemdan # 返回分解后的DataFrame对象
总结
完结撒花!