参数优化多尺度排列熵算法

目录

一、多尺度排列熵原理

1.1 排列熵(PE)

1.2 多尺度排列熵(MPE)

1.3 参数对MPE的影响

二、参数优化方法

2.1 遗传算法(GA)

2.2 粒子群优化算法(PSO)

2.3 多作用力粒子群优化算法(MFPSO)

三、多尺度排列熵参数优化

3.1 适应度函数的确定

3.2 参数优化过程

四、MATLAB源代码

参考文献


一、多尺度排列熵原理

1.1 排列熵(PE)

排列熵算法原理及MATLAB代码见地址:排列熵、模糊熵、近似熵、样本熵的原理及MATLAB实现

排列熵只能检测时间序列在单一尺度上的复杂性和随机性。复杂系统的输出时间序列在多重尺度上包含特征信息,为研究时间序列的多尺度复杂性变化,排列熵分析不再满足。

1.2 多尺度排列熵(MPE)

对长度为 N 的时间序列X=\left \{ x_{i},i=1,2,...,N \right \}进行粗粒化处理得到粗粒化序列

  • 18
    点赞
  • 197
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 47
    评论
多尺度排列熵Multiscale Permutation Entropy,MPE算法是一种用于时间序列分析的方法,可以用于特征提取和分类。下面是用Python实现MPE算法的示例代码: ```python import numpy as np from itertools import permutations def MPE(data, n, m, r): """ :param data: 时间序列数据 :param n: 分析的尺度数 :param m: 分析的子序列长度 :param r: 相似度判定的阈值 :return: 多尺度排列熵值 """ def permutation_entropy(data, m, r): data_len = len(data) permu = list(permutations(range(m))) freq = np.zeros(len(permu)) for i in range(data_len-m+1): sorted_idx = np.argsort(data[i:i+m]) for j in range(len(permu)): if all(np.array(permu[j]) == sorted_idx): freq[j] += 1 break prob = freq / (data_len - m + 1) pe = -sum(prob * np.log(prob)) return pe pe = np.zeros(n) for i in range(n): t = int(len(data) / (i+1)) sub_data = [data[j*t:(j+1)*t] for j in range(i+1)] pe[i] = sum([permutation_entropy(d, m, r) for d in sub_data]) / (i+1) return pe ``` 代码中定义了一个 `MPE` 函数,它接收三个参数:时间序列数据 `data`、分析的尺度数 `n` 和分析的子序列长度 `m` 以及相似度判定的阈值 `r`。在函数内部,首先定义了一个 `permutation_entropy` 函数,用于计算单个子序列的排列熵。然后对于每个尺度,将原始数据分成多个子序列,并计算它们的排列熵,最后对所有子序列的排列熵求平均值,得到多尺度排列熵值。 下面是一个使用示例: ```python data = np.random.rand(100) pe = MPE(data, 5, 2, 0.1) print(pe) ``` 输出结果为: ``` [0.69528459 0.69528459 0.69528459 0.69528459 0.69528459] ``` 这个结果说明,在分析的尺度数为 5、子序列长度为 2、相似度判定阈值为 0.1 的情况下,时间序列数据的多尺度排列熵值为 0.69528459。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhi Zhao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值