Dempster证据理论python复现
证据理论
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⊆Am(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−K1B⋂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复现相关推荐
- 撒花!机器学习圣经 PRML 出 Python 复现代码了!
编辑 | 红色石头 整理 | AI有道 <Pattern Recognition and Machine Learning>,中文译名<模式识别与机器学习>,简称 PRML.出 ...
- 三维点云学习(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 ...
- 三维点云学习(4)5-DBSCNA python 复现-2-kd-_tree加速
三维点云学习(4)5-DBSCNA python 复现-2-kd-tree加速 因为在上一章DBSCAN在构建距离矩阵时,需要构建一个NN的距离矩阵,严重占用资源,古采用kd_tree搜索进行进一步的 ...
- 三维点云学习(4)5-DBSCNA python 复现-1- 距离矩阵法
三维点云学习(4)5-DBSCNA python 复现-1- 距离矩阵法 代码参考,及伪代码参考: DBSCAN 对点云障碍物聚类 使用Kdtree加速的DBSCAN进行点云聚类 DBSCAN 课程笔 ...
- 数值分析—四阶龙格库塔python复现
数值分析-四阶龙格库塔python复现 python入门,复现<数值分析>中的欧拉.龙格库塔,这里以经典四阶龙格库塔来示例. 四阶龙格库塔公式 y_(n+1)=y_n+h/6 (K_1+2 ...
- Python复现颜色图绘制大赛的作品
Python复现颜色图绘制大赛的作品 受slandarer大佬启发,自己用Python复现了一下七年前的一个颜色图绘图大赛的一些作品.把复现过程记录如下: 这场比赛居然已经是七年前的事情了,大佬A F ...
- 关于对《弹道导弹攻防对抗的建模与仿真》一书中部分章节模型的Python复现
Attack-Defense Attack-Defense是对<弹道导弹攻防对抗的建模与仿真>(Attack-Defense Counterwork Modeling and Simula ...
- 如何用Python复现吉布斯现象?
1. 什么是吉布斯(Gibbs)现象? 在信号处理中,有很多很有意思的现象,比如由于栅栏效应引起的频谱泄露,和我们这一讲要讲到的吉布斯现象. 吉布斯现象和频谱泄露多少有些相像,频谱泄露是因为进 ...
- python生成簇_使用Python复现SIGKDD2017的PAMAE算法(并行kmedoids算法)
作者:坚新 研究方向:自然语言处理 https://github.com/yangjianxin1/PAMAE 编者按:AINLP技术群的坚新同学发布了一个新项目:PAMAE (PAMAE: Para ...
- TensorFlow1.14或TensorFlow2内部获取mfcc原理探索(matlab复现或python复现)
MFCC概述 声音是因为物体振动而产生的声波,是可以被人或动物的听觉器官所感知的波动现象.声音有多种特性,比如音色.音调.响度.频率.人耳是能够通过这些特征区分出声音的种类,那么如何让机器去区别不同种 ...
最新文章
- ftrace跟踪内核_ftrace、kpatch、systemtap的基本原理、联系和区别
- pandas显示全部数据内容_1行Python代码就能挖掘数据!这个库太神奇啦!
- 查看 固态硬盘位置_3米防摔+人脸/指纹解锁:西数Armorlock移动固态硬盘
- 基于张量秩一分解的多目标跟踪方法
- 优秀logo设计解析_日本的logo设计为什么那么优秀?
- 远程桌面无法启动Matlab的解决方案
- 如果计算机是中国人发明的,那编程代码很可能就应该这样写!
- drools-基本使用
- php 识别图框,自动识别比例插入CAD图框教程
- ubuntu 14安装droidcam调用手机摄像头
- Java:Map转List (用stream实现)
- 2020 Q4营收环比增长27.5%,前程无忧找回增长节奏
- C#语言入门详解(刘铁锰)---泛型
- java 生成格林威治时间
- php中date设置北京时区,PHP中设置时区方法小结
- 人工智能:通俗易懂理解深度学习与神经网络
- AForge.net 使用之录像拍照功能实现
- 程序员眼中看到的网页是如何制作出来的?
- ASP.NET 文件下载
- Kali Linux渗透测试之端口扫描(一)——UDP、TCP、隐蔽端口扫描、全连接端口扫描