【多源数据融合】基于Dempster-Shafer理论的信念对数相似度测量及其在多源数据融合中的应用(Matlab代码实现)

2024-01-21

???????????????? 欢迎来到本博客 ❤️❤️????????

????博主优势: ???????????? 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️ 座右铭: 行百里者,半于九十。

???????????? 本文目录如下: ????????????

目录

????1 概述

????2 运行结果

????3 参考文献

????4 Matlab代码实现


????1 概述

文献:

基于Dempster-Shafer理论的信念对数相似度测量及其在多源数据融合中的应用

摘要:Dempster-Shafer理论(DST)由于其在处理不确定和不精确信息方面的强大优势而在许多领域引起了广泛关注。然而,一旦Dempster的规则面对高度冲突的证据,可能会产生直观上令人困惑的结果。为了解决这一缺陷,本文提出了一种基于DST的新的信念对数相似度测量(BLSM)。此外,我们进一步提出了一种增强的信念对数相似度测量(EBLSM)来考虑子集的内部差异。同时,我们证明了EBLSM满足一些理想的性质,如有界性、对称性和非退化性。最后,我们设计了一种基于EBLSM的新的多源数据融合方法。通过在故障诊断和目标识别两个应用案例中表现出最佳性能,充分展示了所提出方法的合理性和有效性。

关键词:Dempster-Shafer理论,基本信念赋值,对数相似度测量,信念熵,数据融合

???? 2 运行结果

部分代码:

%% Data set from
% 2022 -A generalized χ 2 divergence for multisource
% information fusion and its application in
% fault diagnosis
%
G = [1,0,0;0,1,0;0,0,1;1,1,1];
F = sum(G,2);cluster = 3;
M = [0.7,0.1,0,0.2;
0.7,0,0,0.3;
0.65,0.15,0,0.2;
0.75,0,0.05,0.2;
0,0.2,0.8,0];
M = M(1:4,:);

%% Iris
% G = [1,0,0;0,1,0;0,0,1;1,1,0;1,0,1;0,1,1;1,1,1];
% F = sum(G,2); cluster = 3;
% M = [0.3337,0.3165,0.2816,0.0307,0.0052,0.0272,0.0052;
%     0.3164,0.2501,0.2732,0.0304,0.0481,0.0515,0.0304;
%     0.6699,0.2374,0.0884,0,0,0.0043,0;
%     0.6996,0.2120,0.0658,0,0,0.0226,0];

%% Iris with noise
% G = [1,0,0;0,1,0;0,0,1;1,1,0;1,0,1;0,1,1;1,1,1];
% F = sum(G,2); cluster = 3;
% M = [0.3337,0.3165,0.2816,0.0307,0.0052,0.0272,0.0052;
%     0,0.99,0.01,0,0,0,0;
%     0.6699,0.2374,0.0884,0,0,0.0043,0;
%     0.6996,0.2120,0.0658,0,0,0.0226,0];

%% Data Set from
% 2022 Enhanced mass Jensen–Shannon divergence for information fusion

% G = [1,0,0;0,1,0;0,0,1;1,1,1];
% F = sum(G,2);cluster = 3;
% M = [0.4,0.6,0,0;
%      0,0.7,0.3,0;
%      0.85,0,0,0.15;
%      0.4,0.6,0,0;
%      0.75,0,0,0.25];
% M = M(1:5,:);

%% Data Set from
% 2018-Multisensor Fault Diagnosis Modeling Based on the Evidence Theory

% G = [1,0,0;0,1,0;0,0,1;1,1,1];
% F = sum(G,2);cluster = 3;
% M = [0.7,0.15,0.15,0;
%      0.4,0.2,0.4,0;
%      0.65,0.35,0,0;
%      0.75,0,0.25,0;
%      0,0.2,0.8,0];

%% Data Set from
% 2018-A correlation coefficient for belief functions

% G = [1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,1,1,1];
% F = sum(G,2);cluster = 4;
% M = [0.06,0.68,0.02,0.04,0.20;
%      0.02,0,0.79,0.05,0.14;
%      0.02,0.58,0.16,0.04,0.20];

%% Data Set from
% 2020-A new divergence measure for belief functions in D–S
% evidence theory for multisensor data fusion

% G = [1,0,0;0,1,0;0,0,1;1,0,1];
% F = sum(G,2); cluster = 3;
% M = [0.4,0.28,0.3,0.02;
%      0.01,0.9,0.08,0.01;
%      0.63,0.06,0.01,0.3;
%      0.6,0.09,0.01,0.3;
%      0.6,0.09,0.01,0.3;];

%% Data Set from
% 2019 Multi-sensor data fusion based on the belief divergence measure of
% evidences and the belief entropy

% G = [1,0,0;0,1,0;0,0,1;1,0,1];
% F = sum(G,2);cluster = 3;
% M = [0.41,0.29,0.3,0;
%      0,0.9,0.1,0;
%      0.58,0.07,0,0.35;
%      0.55,0.10,0,0.35;
%      0.6,0.1,0,0.3;];

% G = [1,0,0;0,1,0;0,1,1;1,1,1];
% F = sum(G,2);cluster = 3;
% M = [0.6,0.1,0.1,0.2;0.05,0.8,0.05,0.10;0.7,0.1,0.1,0.1;];

% %% Data Set from
% % An Improved Multi-Source Data Fusion Method
% % Based on the Belief Entropy and Divergence Measure
%
% G = [1,0,0;0,1,0;0,0,1;1,0,1];
% F = sum(G,2);cluster = 3;
% M = [0.41,0.29,0.3,0;
%      0,0.9,0.1,0;
%      0.58,0.07,0,0.35;
%      0.55,0.1,0,0.35;
%      0.6,0.1,0,0.3;];

%% D-S Fusion
res = M(1,:);res_step = [];
for i = 2:size(M,1)
K = 0;
A = zeros(1,size(M,2));
for j = 1:size(M,2) % 计算第j列交集的信任值
for k = 1:size(M,2)
flag = G(j,:) .* G(k,:);
if sum(flag) >=1
for p = 1:size(G,1)
if sum(flag==G(p,:))== cluster %找到完全匹配的类别进行计算
A(p) = A(p) + res(j)*M(i,k);
break % 每次只会唯一对应一个
end
end
elseif sum(flag)==0 %交集完全为空的类别计算K
K = K + res(j)*M(i,k);
end
end
end
res = 1/(1-K).*A;
res_step = [res_step;res];
end

Python代码可视化:

import matplotlib.pyplot as plt
x = ['Dempster','Murphy','Deng et.al','Lin et.al','Jiang','Xiao','Gao and Xiao','Proposed']
y = [0,0.7273,0.7261,0.6901,0.7328,0.8393,0.8504,0.8759]
font = {'family': 'serif',
'serif': 'Times New Roman',
'weight': 'normal',
'size': 12}
plt.rc('font', **font)
plt.figure(dpi=1200,figsize=[6,7.5])
plt.bar(x,y,color=['magenta','blue','deepskyblue','cyan','lime','yellow','gold','red'],alpha=0.9,label=['DS','Murphy','Deng','Lin','W.Jiang','F.Xiao','X.Gao','The proposed method']) #指定不同颜色并设置透明度
# plt.xlabel('Combination Methods')
plt.xticks(rotation=45) # 倾斜70度
plt.ylabel('Mass of belief')
# plt.legend(['DS','Murphy','Deng','Lin','W.Jiang','F.Xiao','X.Gao','The proposed method'],
#             ncol=1,     # 图例要排成多少列
#             loc=2,        # 图例的中心点
#             bbox_to_anchor=(1.01, 1.0),        # 偏移的百分比
#             borderaxespad=0.,
#             fontsize=12,
#             title="Combination Methods")  # 图例标题

# plt.legend()
plt.savefig("application.jpg")
plt.show()

????3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

https://content.iospress.com/articles/journal-of-intelligent-and-fuzzy-systems/ifs230207

A belief logarithmic similarity measure based on Dempster-Shafer theory and its application in multi-source data fusion - IOS Press

???? 4 Matlab代码 实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【多源数据融合】基于Dempster-Shafer理论的信念对数相似度测量及其在多源数据融合中的应用(Matlab代码实现) 的相关文章

  • 龙卷风网络和线程

    我是 Tornado 和 Python 线程的新手 我想要实现的目标如下 我有一个龙卷风网络服务器 它接受用户的请求 我想在本地存储一些数据 并定期将其作为批量插入写入数据库 import tornado ioloop import tor
  • 在Matlab中使用中心切片定理实现滤波反投影算法

    我正在研究一种使用中心切片定理的滤波反投影算法作为家庭作业 虽然我理解纸上的理论 但在 Matlab 中实现它时遇到了问题 我得到了一个可以遵循的框架 但我认为我可能误解了一个步骤 这是我所拥有的 function img sampleFB
  • 对自定义类进行排序而不使用“key”参数?

    您可以对数组进行排序myclass通过使用key论证sorted功能 sortedlist sorted myclasses key lambda obj obj myproperty 有没有办法为我们的班级定义自然顺序 也许有一些神奇的方
  • 在 Python 中打开文本文件时出现问题

    这看起来应该很简单 f open C Users john Desktop text txt r 但我收到此错误 Traceback most recent call last File
  • Python 3 urllib 与请求性能

    我正在使用 python 3 5 并且正在检查 urllib 模块与 requests 模块的性能 我用 python 编写了两个客户端 第一个使用 urllib 模块 第二个使用 request 模块 它们都生成二进制数据 我将其发送到基
  • python TypeError:“NoneType”对象没有属性“__getitem__”

    这次我尝试另一个例子索莱姆的博客 http www janeriksolem net 2012 08 reading gauges detecting lines and html 它是一个使用霍夫变换检测图像中的直线和圆的模块 这是代码
  • 如何禁用Excel自动识别数字和文本

    我使用 Python 生成了 CSV 文件 但是当我在Excel中打开它时 如果可以转换 Excel会自动将字符串识别为数字 e g 33E105变成33 10 105 这实际上是一个ID 而不是一个数字 如何在打开 CSV 文件时在 Ex
  • 向类添加属性的更 Pythonic 方式?

    我正在使用来自两个不同网页的数据集 但对于同一个人 数据集是合法信息 一些数据在第一页上可用 因此我使用正确的信息初始化被告对象 并将我当前没有数据的属性设置为null 这是班级 class Defendant object holds d
  • Python elasticsearch DSL 聚合/每个文档嵌套值的度量

    我试图找到 2 级嵌套中的最小值 每个文档单独的最小值 到目前为止 我能够进行聚合 计算搜索结果中所有嵌套值的最小值 但无需按文档进行分隔 我的示例架构 class MyExample DocType myexample id Intege
  • 如何加载 caffe 模型并转换为 numpy 数组?

    我有一个 caffemodel 文件 其中包含 ethereon 的 caffe tensorflow 转换实用程序不支持的层 我想生成我的咖啡模型的 numpy 表示 我的问题是 如何将 caffemodel 文件 我还有 prototx
  • 如何更新 certifi 的根证书?

    我正在使用 certifi python 模块来验证 ssl 连接 我查看了 certifi python2 7 site packages certifi cacert pem 中包含的根证书 其中一些证书已过期 我如何更新这些证书 我尝
  • Linux 中如何确定哪个进程正在使用某个端口

    我目前正在其默认端口上运行 RethinkDB 因为如果我将浏览器指向localhost 8080我看到 RethinkDB Web 界面 我想关闭 RethinkDB 并使用以下命令在另一个端口上重新打开它 port offset争论 然
  • 如何提取数字(以及比较形容词或范围)

    我正在用 Python 开发两个 NLP 项目 它们都有类似的任务提取数值和比较运算符来自句子 如下所示 greater than 10 weight not more than 200lbs height in 5 7 feets fas
  • 如何使用python将下载的音频文件扩展名重命名为mp3

    目前 我正在尝试根据艺术家姓名和歌曲标题将 YouTube 音乐视频下载为音频文件 下载所有视频后 我尝试将所有音频文件从 webm 或 mp4 扩展名重命名为 mp3 但似乎我在将文件名和扩展名更改为 mp3 时遇到了一些错误 我的代码基
  • 如何在 Python 中将列表变量传递给 subprocess.call 命令

    我有一个清单 apps apps append wq35a5huqlja45jsyukrpmwuiayovrmh apps append q7mimvgduueernwvw4y22t5huemykntw apps append pmudbp
  • 如何创建一个包含多个文件且没有子包的Python包

    我正在尝试创建一个包含一些类的包 mypackage 但希望这些类包含在多个文件中 例如 我希望 class a py 包含一个名为 ClassA 的类 等等 因此 我想要以下文件结构 mypackage init py class a p
  • 如何在 Robot Framework 中将变量定义为具有列表值的字典

    在我的一个测试用例中 我需要定义一个字典 其中键是字符串 值是字符串数组 我怎样才能在机器人框架中做到这一点 我第一次尝试使用如下所示的构造 但行不通 Variables Dictionary A StringA1 StringA2 B S
  • Python 中字典的 enumerate()

    我知道我们用enumerate用于迭代列表 但我在字典上尝试过 但没有给出错误 CODE enumm 0 1 1 2 2 3 4 4 5 5 6 6 7 7 for i key in enumerate enumm print i key
  • 正确重载 stringbuf 以替换 MATLAB mex 文件中的 cout

    MathWorks 目前不允许您使用cout当 MATLAB 桌面打开时 从 mex 文件中读取 因为它们已重定向 stdout 他们当前的解决方法是提供一个函数 mexPrintf 他们要求你改用 http www mathworks c
  • 使用 NaN 获取 pandas 系列模式的最快方法

    我需要找到 pandas groupby 对象或单个系列的模式 最常见元素 为此我有以下函数 def get most common srs from collections import Counter import numpy as n

随机推荐