入门文献复现——Belief function combination and conflict management

本文介绍了如何基于加权因子w(A,m)的通用框架来复现论文中的Dempster-Shafer证据理论融合规则,并提供了具体的Python实现代码。该框架分为直接定值、计算加权因子和自动学习加权因子三种情况,适用于Yager与Semts、Dempster与Dubios&Prade的融合规则。

为了更好的读懂论文,一边阅读一边尝试复现论文

在这篇论文中,作者提出了基于加权因子w(A,m) 的通用框架。将此加权因子的计算分为三类。

1、直接定值:YagerSemts的融合规则适用
2、计算加权因子:DempsterDubios&Prade的融合规则适用
3、自动学习加权因子

1.融于框架后的Dempster融合规则

1.1.这里就先不详细写推导过程,本博文主要写的是程序复现这一部分
框架内的Dempster组合规则

#基于通用框架的改进的Dempster方法
#本程序并不完善,过于冗余
#
#如果想增加(减少)数据源的个数,那么需要在 def K(X_set,n)和def m(str_one) 函数下,
#1、增加(减少)空集合,及set_1,set_2,这些是用来做 ∩ 运算
#2、增加(减少)for循环
#3、改变if条件语句


import math
#1、首先说明辩框X
set_List=['A','B','C'];
X_set=set(set_List);#变成集合
empty_set=set();#这是一个空集
#2、列出不同证据源的bpa
# m_1={'A':0.98,'B':0.01,'C':0.01};
# m_2={'A':0,'B':0.01,'C':0.99};
k=0.1;#固定值
#e=0.1,0.01,0.001,0.0001;#变化值
e=0.0001
z=1-k-e;#z+e+k=1
m_1={
   
   'A':e,'B':k,'C':z};
m_2={
   
   'A':z,'B':k,'C':e};
#3、计算K值即冲突质量m(ϕ)
def K(X_set,n):
    sum=0.00;
    set_1=set();
    set_2=set();
    if(n<1):
        #print("只有一个证据,Fail!\n");
        return -1;
    #print("当前有{0}个证据来源\n".format(n));
    for m1 in X_set:
        set_1.add(m1);
        for m2 in X_set:
            set_2.add(m2);
            #print(type(set_2),set_2)
            if(set_1.intersection(set_2)==set()):
                #此时相交集合为空集合
                sum+=m_1[m1]*m_2[m2];
            set_2.clear()
        set_1.clear();
    #print(sum);
    return sum;

#4、计算m_∩(A)
def m(str_one):
    i=1
    sum=0.00
    set_one=set(str_one);#将字符str_one放在一个集合中
    set_2=set();#为了方便集合运算,创建一个临时的空集合
    for m2 in m_2:
        set_2.add(m2
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值