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

熵或复杂性度量区分时间序列类别和理解潜在动态的能力是众所周知的。模糊散布熵(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.利用模糊隶属度函数映射

\begin{aligned}
& \mu_{M_1}(\alpha)= \begin{cases}0 & \alpha>2 \\
2-\alpha & 1 \leq \alpha \leq 2 \\
1 & \alpha<1\end{cases} \\
& \mu_{M_k}(\alpha)=\left\{\begin{array}{ll}
0 & \alpha>k+1 \\
k+1-\alpha & k \leq \alpha \leq k+1 \\
\alpha-k+1 & k-1 \leq \alpha \leq k \\
0 & \alpha<k-1
\end{array} \quad k=2, \ldots, c-1\right. \\
& \mu_{M_c}(\alpha)= \begin{cases}1 & \alpha>c \\
\alpha-c+1 & c-1 \leq \alpha \leq c \\
0 & \alpha<c-1\end{cases} \\
&
\end{aligned}

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) .



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容