模糊散布熵Fuzzy dispersion entropy(Python版)

发布时间 2023-07-10 22:37:13作者: RagdollCat

熵或复杂性度量区分时间序列类别和理解潜在动态的能力是众所周知的。模糊散布熵(Fuzzy dispersion entropy,python代码:https://mbd.pub/o/bread/mbd-ZJuVmZ1u)是采用一种新颖编码方法来保持子序列的符号表示。该算法非常简单,易于实现,作为特征提取方法可以与机器学习、深度学习结合,解决复杂的分类或预测问题,可用于生物医学、神经科学、电气、交通、气象、能源动力、水利、海洋科学、经济、土木、计算机科学、机械、工业工程等领域时间序列分析和特征提取。

1.给定时间序列:

\mathbf{x}=\left\{x_1, x_2, x_3, \ldots, x_N\right\}

2.使用 正态累积分布函数NCDF进行归一化:

y_i=\frac{1}{\sigma \sqrt{2 \pi}} \int_{-\infty}^{x_i} e^{\frac{-(t-\gamma)^2}{2 \sigma^2}} d t

3.将时间序列y映射到序列zc

z_i^c=c . y_i+0.5

4.利用模糊隶属度函数映射

\mu_{M_1}(\alpha)= \begin{cases}0 & \alpha>2 \\ 2-\alpha & 1 \leq \alpha \leq 2 \\ 1 & \alpha</p><p><img class=

\mu_{M_c}(\alpha)= \begin{cases}1 & \alpha>c \\ \alpha-c+1 & c-1 \leq \alpha \leq c \\ 0 & \alpha</p><p>5.根据嵌入维数为m、时延为d,构建序列</p><p><img class=

6.计算模式隶属度

\mu_{\pi_{v_0 v_1 \ldots v_{m-1}}}\left(\mathbf{z}_j^{m, c}\right)=\prod_{i-0}^{m-1} \mu_{M_{v_i}}\left(z_{j+(i) d}^c\right)

7.计算概率

p\left(\pi_{v_0, v_1, \ldots, v_{m-1}}\right)=\frac{\sum_{j=1}^{N-(m-1) d} \mu_{\pi_{v_0 v_1 \ldots v_{m-1}}}\left(\mathbf{z}_j^{m, c}\right)}{N-(m-1) d}

8.计算熵值

\operatorname{FuzDisEn}(\mathbf{x}, m, c, d)
=-\sum_{\pi=1}^{c^m} P\left(\pi_{v_0 v_1 \ldots v_{m-1}}\right) \cdot \ln P\left(\pi_{v_0 v_1 \ldots v_{m-1}}\right) .