证据理论

Dempster合成规则是证据理论的核心,由于在证据理论中需要的先验数据比概率推理理论中的更为直观,再加上Dempster合成公式可以综合不同专家或数据源的知识和数据,使得证据理论在专家系统,信息融合,情报分析,多属性决策等领域广泛应用。

证据理论的概念

  • 基本概率分配(BPA):识别框架上的mass函数,证据不为0的元成为焦元。
  • 似真函数:也称作似真度函数,定义为Pl(A)=∑B⋂A≠Φm(B)Pl(A) = \sum_{B\bigcap A\neq \Phi}^{ } m(B)Pl(A)=∑B⋂A​=Φ​m(B)
  • 信任函数:Bel(A)=∑B⊆Am(B)Bel(A) = \sum_{B\subseteq A}^{ } m(B)Bel(A)=∑B⊆A​m(B)
  • 信任区间:新人函数和似真函数组成信任区间

证据理论的特点

  • 满足比bayes概率理论更弱的条件,即不必满足概率可加性。
  • 具有直接表达“不确定”和“不知道”的能力,这些信息表示在mass函数中,并在证据合成过程中保留了这些信息。
  • 证据理论不但允许人们将信度赋予假设空间的单个元素,而且还能赋予它的子集。

Dempster组合公式

m1⊕m2(A)=11−K∑B⋂C=Am1(B)m2(C)m_1 \oplus m_2(A)=\frac{1}{1-K} \sum_{B\bigcap C=A}^{ } m_1(B) m_2(C) m1​⊕m2​(A)=1−K1​B⋂C=A∑​m1​(B)m2​(C)
其中
K=∑B⋂C=Φm1(B)m2(C)K= \sum_{B\bigcap C=\Phi}^{ } m_1(B)m_2(C) K=B⋂C=Φ∑​m1​(B)m2​(C)

python复现


def bit_and(a,b):l = len(a)ans =''for i in range(l):ans += str(int(a[i]) and int(b[i]))return ansdef DS_fusions(A):#编码那个太难想了,简简单单字符串比较好#A为n*3矩阵,首列为证据集合编码,后续两列为支持度。#mass函数假设只有两个num_terrorist = len(A[0][0])#字符串长度就是单个恐怖分子的数目all_terrorist = len(A) #整体数目,用来遍历ans = [0] * all_terrorist#最后的答案k = 0#算分母intersection = 0#算分子,用一个循环算完for i in range(all_terrorist):first = A[i][0]for j in range(all_terrorist):second = A[j][0]#tmp = first and secondtmp = bit_and(first,second)print(first,second,tmp)if tmp == '0'*num_terrorist:k += A[i][1]*A[j][2]for ii in range(all_terrorist):if tmp ==  A[ii][0]:ans[ii] += A[i][1]*A[j][2]print(1-k)for i in range(all_terrorist):ans[i] = ans[i]/(1-k)return ansdef input_A():A = []while 1:tmp = [input('input terrorist(press q finish input): ')]if tmp[0] == 'q':breaktmp.append(float(input('input first mass: ')))tmp.append(float(input('input second mass: ')))A.append(tmp)return Aif __name__ == '__main__':# A = input_A()# print(A)A = [['100',0.4, 0.2], ['010', 0.3, 0.2], ['001', 0.1, 0.05], ['110', 0.1, 0.5], ['111', 0.1, 0.05]]print(DS_fusions(A))

输入为n*3维矩阵,矩阵每一行第一列是支持的证据的编码,支持则该位为1,不支持为0。后面两列为两组支持度。
DS_fusions函数为证据融合主函数,一个循环内同时,将两组证据的字符串按位与,如果为‘000’则给K增加,若为A中的某个数则给ans中增加,同时计算分子和分母。

实验结果

实验结果为
[0.4657534246575344, 0.363013698630137, 0.020547945205479458,0.14383561643835618, 0.006849315068493152]与ppt答案一致。

Dempster证据理论python复现相关推荐

  1. 撒花!机器学习圣经 PRML 出 Python 复现代码了!

    编辑 | 红色石头 整理 | AI有道 <Pattern Recognition and Machine Learning>,中文译名<模式识别与机器学习>,简称 PRML.出 ...

  2. 三维点云学习(4)5-DBSCNA python 复现-3-kd-tree radius NN 三方库 scipy 与 sklearn速度比较

    三维点云学习(4)5-DBSCNA python 复现-3-kd-tree radius NN 三方库 scipy 与 sklearn速度比较 import from scipy.spatial im ...

  3. 三维点云学习(4)5-DBSCNA python 复现-2-kd-_tree加速

    三维点云学习(4)5-DBSCNA python 复现-2-kd-tree加速 因为在上一章DBSCAN在构建距离矩阵时,需要构建一个NN的距离矩阵,严重占用资源,古采用kd_tree搜索进行进一步的 ...

  4. 三维点云学习(4)5-DBSCNA python 复现-1- 距离矩阵法

    三维点云学习(4)5-DBSCNA python 复现-1- 距离矩阵法 代码参考,及伪代码参考: DBSCAN 对点云障碍物聚类 使用Kdtree加速的DBSCAN进行点云聚类 DBSCAN 课程笔 ...

  5. 数值分析—四阶龙格库塔python复现

    数值分析-四阶龙格库塔python复现 python入门,复现<数值分析>中的欧拉.龙格库塔,这里以经典四阶龙格库塔来示例. 四阶龙格库塔公式 y_(n+1)=y_n+h/6 (K_1+2 ...

  6. Python复现颜色图绘制大赛的作品

    Python复现颜色图绘制大赛的作品 受slandarer大佬启发,自己用Python复现了一下七年前的一个颜色图绘图大赛的一些作品.把复现过程记录如下: 这场比赛居然已经是七年前的事情了,大佬A F ...

  7. 关于对《弹道导弹攻防对抗的建模与仿真》一书中部分章节模型的Python复现

    Attack-Defense Attack-Defense是对<弹道导弹攻防对抗的建模与仿真>(Attack-Defense Counterwork Modeling and Simula ...

  8. 如何用Python复现吉布斯现象?

    1. 什么是吉布斯(Gibbs)现象?   在信号处理中,有很多很有意思的现象,比如由于栅栏效应引起的频谱泄露,和我们这一讲要讲到的吉布斯现象.   吉布斯现象和频谱泄露多少有些相像,频谱泄露是因为进 ...

  9. python生成簇_使用Python复现SIGKDD2017的PAMAE算法(并行kmedoids算法)

    作者:坚新 研究方向:自然语言处理 https://github.com/yangjianxin1/PAMAE 编者按:AINLP技术群的坚新同学发布了一个新项目:PAMAE (PAMAE: Para ...

  10. TensorFlow1.14或TensorFlow2内部获取mfcc原理探索(matlab复现或python复现)

    MFCC概述 声音是因为物体振动而产生的声波,是可以被人或动物的听觉器官所感知的波动现象.声音有多种特性,比如音色.音调.响度.频率.人耳是能够通过这些特征区分出声音的种类,那么如何让机器去区别不同种 ...

最新文章

  1. ftrace跟踪内核_ftrace、kpatch、systemtap的基本原理、联系和区别
  2. pandas显示全部数据内容_1行Python代码就能挖掘数据!这个库太神奇啦!
  3. 查看 固态硬盘位置_3米防摔+人脸/指纹解锁:西数Armorlock移动固态硬盘
  4. 基于张量秩一分解的多目标跟踪方法
  5. 优秀logo设计解析_日本的logo设计为什么那么优秀?
  6. 远程桌面无法启动Matlab的解决方案
  7. 如果计算机是中国人发明的,那编程代码很可能就应该这样写!
  8. drools-基本使用
  9. php 识别图框,自动识别比例插入CAD图框教程
  10. ubuntu 14安装droidcam调用手机摄像头
  11. Java:Map转List (用stream实现)
  12. 2020 Q4营收环比增长27.5%,前程无忧找回增长节奏
  13. C#语言入门详解(刘铁锰)---泛型
  14. java 生成格林威治时间
  15. php中date设置北京时区,PHP中设置时区方法小结
  16. 人工智能:通俗易懂理解深度学习与神经网络
  17. AForge.net 使用之录像拍照功能实现
  18. 程序员眼中看到的网页是如何制作出来的?
  19. ASP.NET 文件下载
  20. Kali Linux渗透测试之端口扫描(一)——UDP、TCP、隐蔽端口扫描、全连接端口扫描

热门文章

  1. 台达DOP-B触摸屏通过MODBUS RTU通讯4台台达M变频器.含触摸屏程序,接线图和变频器参数设定
  2. 考研数学张宇常说的段子和道理,自己看视频的时候整理的(欢迎指正、补充)
  3. OpenSSL 用SM3算法进行hash
  4. Podfile的简单使用
  5. 数据结构学习——浅谈哈希表开散列和闭散列
  6. 机器学习中数据集的划分
  7. KSZ9897 switch 交换机
  8. windows server 部署java Web项目
  9. 3 基于采样的路径规划 —— RRT算法
  10. MySQL字符串的拼接方法