编程技术分享平台

网站首页 > 技术教程 正文

关于几种熵的计算(MATLAB)(matlab熵值法求权重)

xnh888 2024-11-06 12:58:21 技术教程 46 ℃ 0 评论

Shannon在1948年定义了信息熵,并用信息熵来衡量一个事件的不确定程度。作为信息论中一个重要的基本概念,信息就是一种客观存在和能动的过程,它可以减少或者消除事件的不确定因素。一切客观事物的属性中都包含着不确定性,人们在没有获得某个事物信息时,对事物的认知是不确定的,一旦人们或得到了相关信息,就能够了解该事物,也就是说接收者对于原事物的不确定性减小或者消除了。如何度量信息成为学者们研究的重要课题。Shannon首先在通信领域中对信息度量进行了深入的研究,他建立一个基本的通信系统模型,系统模型包括信源、信道、与编码/译码器、信宿。他指出信息量就是减少信息的发送者不确定性所需的信息度量,即如果信息的接收者获得这些信息量之后,对信源不确定度就会消除。借助概率和数理统计的相关概念,Shannon提出了度量信息量的数学公式,对于离散型信源,由于信源由多个随机事件组成,所以随机事件出现的概率就用来代替随机时间出现的不确定度。

1958年,Kolmogrov定义了测度熵,称为Kolmogrov熵,用来度量系统运动的混乱或无序的程度。并且提出了柯尔莫哥洛夫复杂性,他指出一个系统的复杂度与其空间结构或者时间序列所表征的变化的最小描述相关。一个事物的算法复杂度可以由产生该事物的图形结构与该图形结构之比的极限来确定,也可以由产生该事物的符号序列的最短程序长度与符号序列本身大小之比的极限来确定(当后者趋于极限时)。

近似熵的概念是90年代初期被提出的,与其它非线性动力学参数(如关联维数、Lyapunov指数等)相比,近似熵是从衡量时间序列复杂性的角度来度量信号产生新模式的概率大小。一个时间序列的近似熵值越大,说明序列的复杂度越高,随着时间的增加所产生的新模式越多。从理论上可以看出,序列的不规则程度和其复杂程度可以由近似熵表示。当数据维数改变时,序列中出现新的模式,而近似熵就是求这个新模式对数条件概率的均值。近似熵的主要特点就是采样时间序列复杂程度与近似熵值的大小成正比的关系。时间序列越复杂,其近似熵值也就越大;相比于K-S熵,K2熵、E-R熵而言,近似熵可以通过较短的时间序列得到序列的复杂度进而分析信号特征;它近似等于某种条件概率,所以对随机过程和确定过程都适用;对于偶尔产生的瞬态强干扰方面,近似熵有着较好的承受能力,并具有一定的抗噪、抗野点能力。

样本熵由近似熵改进而来,算法的改进在于样本熵采用和的对数来进行计算,降低了近似熵算法中存在的误差,与已知的随机部分有更好的一致性。样本熵基于近似熵,但精度优于近似熵。这使其具有了更好的性质:由于没有加入数据自身的比较过程,所以在计算条件概率时更加精确。由于算法基于近似熵,所以算法可以通过较短的序列计算出序列的复杂度;相对于近似熵,样本熵不仅与已知的随机部分具有更好的一致性,而且,当一个时间序列的样本熵值比另一个时间序列熵值大时,对于其他的参数值,也具有较大的样本熵值;并且样本熵对于数据丢失不敏感。

多尺度熵方法基于样本熵,用于描述一个时间序列在各个不同的时间尺度中的复杂程度。从其定义当中可以明确看出,多尺度熵就是计算一个时间序列在多个不同的尺度上的样本熵。如果一个序列的多尺度熵值随着尺度的减少而减小,说明此序列结构比较简单;如果该序列的多尺度熵值随着尺度的增加而增大,说明此序列自相似大,无规则程度高。如果一个时间序列在不同尺度下的熵值都高于另一个时间序列,就说明前者的复杂度要高于后者,即随机程度高于后者。

排列组合熵是一种度量时间序列的复杂性算法,排列熵算法基于Kolmogorov复杂度算法,并结合了信息熵的概念,来计算时间序列的无规则程度。排列熵通过时间序列在多维重构空间上的相似程度来计算初始时间序列的复杂度。算法计算简单,概念清晰,适用于大数据量的测量,可以更好的检测动力学系统的复杂程度。

关于熵的计算程序,如下:

时间序列的Kolmogorov(K2)熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZmJtt


时间序列的增量熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZmJts


时间序列的分层多尺度熵计算(MATLAB
https://mbd.pub/o/bread/mbd-ZpeZlZxs


两个时间序列的分层多尺度交叉熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZts


时间序列的模糊熵计算(MATLAB
https://mbd.pub/o/bread/mbd-ZpeZlZpy


时间序列的网格分布熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZlq


时间序列的熵-熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZhx


时间序列的分布熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZhq


两个时间序列的互谱熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZhp


两个时间序列的交叉样本熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZdy


两个时间序列的交叉排列熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlZZx


两个时间序列的交叉柯尔莫哥洛夫熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJpr


时间序列的相位熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJlp


两个时间序列的精细多尺度交叉熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJht


时间序列的精细多尺度熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJdp


时间序列的斜率熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJZt


时间序列的谱熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJZr


时间序列的符号动态熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZlJZq


两个时间序列的交叉模糊熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZk5lr


时间序列的余弦相似熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZk5Zw


一维时间序列的注意熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeYm55v


时间序列的二维分散熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeYm59p


时间序列的气泡熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZkphs


时间序列的复合(和精细复合)多尺度交叉熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZkplq


时间序列的修正条件熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZkp9x


两个时间序列的修正交叉条件熵计算(MATLAB)
https://mbd.pub/o/bread/mbd-ZpeZk5Zu

知乎学术咨询:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表