样本熵理论分析与代码实现

前言
样本熵是一个衡量复杂度的指标,如果没有一系列熵的概念做基础的话,要理解样本熵是一件非常困难的事情。在我刚开始接触这个概念的时候,也是四处寻找相关的教程与介绍,但是都没能让我很好的理解并使用它,这使得我非常的苦恼,但是皇天不负有心人,通过长时间高频率的努力,我终于攻克了样本熵这个难关,进入了应用样本熵的入门阶段,为了避免遗忘和帮助刚刚接触样本熵的人减少一点苦恼,我开了这么一个博客用来介绍记录样本熵,如果有不足的地方还希望大家不吝赐教。

理论分析

概念

样本熵是一种用于度量时间序列复杂性的方法,通常用于时间序列复杂行分析和故障病理诊断。也就是你这个时间序列复杂不复杂,前后复杂度是不是一致的。

算法表述

  1. 通过测量提取一个等频信号,组成一个N维的时间序列u(1),u(2),……,u(N).
  2. 假设向量长度为m,将时间序列重构为m维的向量X(1),X(2),…,X(N-m+1),其中X ( i ) = [ u ( i ) , u ( i + 1 ) , . . . , u ( i + m − 1 ) ] 。
  3. 对于1 ≤ i ≤ N − m + 1 ,统计满足d [ X ( i ) , X ( j ) ] ≤ r ) 的向量个数,其中r为相似度的度量值。
    其中,d [ X ( i ) , X ( j ) ]为两个向量之间对应元素之间距离的最大值,记 B m B^m Bm=满足条件的向量个数除以N-M。
    将所有的向量X ( i ) 都计算一遍 B m B^m Bm,并且除以N-M+1进行归一化。
  4. 将向量长度加1,重复步骤3计算得到 B m + 1 B^{m+1} Bm+1
  5. 样本熵就等于-ln( B m + 1 B^{m+1} Bm+1/ B m B^m Bm)

个人见解

样本熵能够用来判断复杂度的关键是取得一个合理的向量长度m和相似度度量值r。其中m是决定样本熵范围的一个变量,而r是决定能否度量出复杂度的一个变量。

代码实现

代码是使用python实现的,感兴趣的可以下载交流。
代码链接: https://download.csdn.net/download/qq_42784992/13944128.

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

折只千纸鹤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值