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?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复现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改 设备的mac 地址
- 下一篇: 【4】基于深度神经网络的脑电睡眠分期方法