Dempster证据理论python复现

证据理论

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

证据理论的概念

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

证据理论的特点

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

Dempster组合公式

$$
m_1 \oplus m_2(A)=\frac{1}{1-K} \sum_{B\bigcap C=A}^{ } m_1(B) m_2(C)
$$
其中
$$
K= \sum_{B\bigcap C=\Phi}^{ } m_1(B)m_2(C)
$$

python复现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

def bit_and(a,b):
l = len(a)
ans =''
for i in range(l):
ans += str(int(a[i]) and int(b[i]))
return ans

def 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 second
tmp = 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 ans

def input_A():
A = []
while 1:

tmp = [input('input terrorist(press q finish input): ')]
if tmp[0] == 'q':
break
tmp.append(float(input('input first mass: ')))
tmp.append(float(input('input second mass: ')))
A.append(tmp)
return A

if __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答案一致。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2024 galaxy
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信