D-S证据理论

本文参考书 Wikipedia中的 Dempster-Shafer thoery 原文链接:点击打开链接
同时还参考了浙江大学计算机学院人工智能系  徐从富 教授的《人工智能》课件。

在这里特别感谢!

一、 DS证据理论概述

核心: Dempster合成规则——将多个主体(可以是不同的人的预测、不同的传感器的数据、不同的分类器的输出结果等等)相融合

优点: 1、所需要的先验数据比概率推理理论中更直观、更容易获得 ( 不知道为什么);满足比Bayes概率理论更弱的条件,即 “不必满足概率可加性”
             2、可以融合多种数据和知识(正如核心中所述)
             3、具有直接表达 “不确定” 和 “不知道” 的能力,这些信息表示在mass函数中,并在证据合成过程中保留了这些信息( 还没有理解感受到)。

缺点: 1、证据必须是独立的
             2、证据合成规则没有非常坚固的理论支持,其合理性和有效性还存在较大的争议
             3、计算上存在“指数爆炸问题”
             4、在某些情况下得到的结果违背常理,如“Zadeh悖论”,具体见下面的例子

二、 DS证据理论基本概念

我们先来假设这样一个情景,有一个传感器探测一个很远处的一道光,这道光只能发出 {red, yellow, green}这三种中的一种光。传感器对所探测的光做出分析,形成了一些假设这道光可能是{Null, Red, Yellow, Green, Red or Yellow, Red or Green, Yellow or Green, Any},以及这些假设相应的可能性(也就是说Mass)。那么,DS证据理论是干啥呢,我感觉就是根据这个传感器提供的各个假设的信息,得到针对每一个假设的可信度区间。需要注意的是,这里的Red or Yellow并不是P(Red) + P(Yellow), 而是Red or Yellow 这一假设的概率( 其实我也还没太搞懂这之间的区别,只是感觉上应该不一样)。
这里先给出这一场景的所有信息表:
HypothesisMassBeliefPlausibility
Null000
Red0.350.350.56
Yellow0.250.250.45
Green0.150.150.34
Red or Yellow0.060.660.85
Red or Green0.050.550.75
Yellow or Green0.040.440.65
Any0.11.01.0
OK,根据上面的例子,我们就来定义一下DS证据理论中的基本概念。

1. 首先我们设X 全域(Universe):也就是指的上面那道光可能发出的颜色,即X = {Red, Yellow, Green}
  对于X 全域,我们一共可以有多少种假设呢?很显然,就是 个啦 (包括空集),这个叫做识别框架,或者是假设空间。
  
  比如说: 则 
  对于我们的例子X = {Red, Yellow, Green},={Null, Red, Yellow, Green, Red or Yellow, Red or Green, Yellow or Green, Any}

2. DS证据理论针对识别框架中的每一个假设都分配了概率,我们称为基本概率分配(BPA, Basic Probability Assignment)或者是基本置信分配     (BBA, Basic Belief Assignment )。这个分配函数我们称为mass函数。
  
  1)公式为: ,每个假设的mass函数值(概率(probability)或者是置信度(belief)值)都在0和1之间;
  
  2)同时,空集的mass函数值为 0,即另外其他的假设mass值得和为1,即,A 为所包含的假设。
  3)其中,使得mass值大于0的假设 A称为焦元(Focal element)
  
  在我们上面的例子中,Column 2 即为mass函数针对各个假设的值,m(Null) = 0, m(Red) + m(Yellow) + m(Green) + ... + m(Any) = 1 根据该列我们可以得到满足上面的定义。

3. 下面我们要根据mass函数来计算每一个假设的 信度函数 (Belief function) 以及 似然函数 (Plausibility function)
  
  得到的信度函数和似然函数就是这个假设A 的概率范围了:

  1)信度函数的定义如下:
                                                                                    
  该公式表示,对于假设A ,它的信度函数为所有真属于 A 的假设,即 B ,的mass值的和。
  以上面的例子来讲,A假设为 Red,那么它的 Bel 函数值就是0.35, 因为只有它本身是属于假设 A 。
  但是,如果假设A 为 Red or Yellow, 那么它的 Bel 函数值就不是0.06了, 而是 m(Null) + m(Red) + m(Yellow) + m(Red or Yellow) = 0 +   0.35 + 0.25 + 0.06 = 0.66

  2) 似然函数的定义如下:
                       
  该公式表示,对于假设A , 它的似然函数为所有与 A 相交不为空的假设 B 的mass值的和。
  以上面的例子来讲, 还是 A假设为 Red,那么它的 pl 函数值为 m(Red) + m(Red or Yellow) + m(Red or Green) + m(Any) = 0.35 + 0.06 + 0.05 + 0.1 =0.56

  3) 信任区间
  根据上面的信度函数和似然函数,对于一个识别框架中的某个假设A , 我们可以根据其基本概率分配的mass函数来计算 A 的 Bel(A)及Pl(A)。那么,由信任函数与似然函数组成的闭区间[Bel(A),Pl(A)]则为假设 A 的信任区间,表示对假设 A 的确认程度。
                      

三、 Dempster合成规则

前面所述的都是只有一个主体(subject)对一个识别框架预测。而Dempster合成规则正是用来将多个主体的输出结果相结合的关键步骤。
两个主体的mass函数  m1 和  m2 有:
                        
                        
其中
                          
等价于                  

合成规则为两个mass函数  m1 和  m2, 对于假设A的合成结果等于两个主体的假设中,所有相交为  A 的假设的mass函数值的乘积的和,再除以一个归一化系数 1- K。归一化系数 1- K 中的  K 的含义是证据之间的冲突(the conflict between the evidences, called conflict probability) (并不太明白为何能够表现证据之间的冲突,从公式上来看就是两个主体提供的证据不同的时候(B与C相交为了空集)的mass函数值乘积)。

举个“栗子”:
一宗谋杀案有三个犯罪嫌疑人  U = {Peter, Paul, Mary}, 两个目击证人分别指证犯罪嫌疑人,得到两个mass函数  m1 和  m2.

1)根据上述公式,为了求得合成规则  m12 ,我们先求归一化系数 1- K 值

然后再求合成之后的每个假设的mass函数值
2)Peter的组合mass函数值

3)Paul的组合mass函数值

4)Mary的组合mass函数值


由此,我们得到了如上表所示的组合函数  m12 。
根据得到的合成的mass函数,我们同样能计算对于组合mass函数对于各个假设的信度函数以及似然函数。
  

但是这一结果却有悖于我们的常识,因为在两个目击证人指证的证据中,Paul是凶手的概率都不大,但是最终的结果却直接指向了Paul。该例子就是“Zadeh悖论”。

若修改“Zadeh悖论”中的部分数据,如下表:

重新计算新的组合mass函数
1)还是先计算归一化系数 1-K
这次计算采用简便方法,用相交为空的公式来做(及上面的等价公式)

2)计算Peter的组合mass函数

3)计算Paul的组合mass函数

4)计算Mary的组合mass函数

5)计算{Peter, Paul, Mary}的组合mass函数

根据这次的结果,我们同样可以计算组合函数对每个假设的信度函数值以及似然函数值


以上就是Dempster-shafer 的基本概念和理论知识了。
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: D-S证据理论是一种推理方法,可以用来处理不确定性问题。它是由Dempster和Shafer在20世纪60年代提出的。这种理论假设存在一个全集合,我们不能确定其中的任何一个子集的真实值,但是我们可以凭借一些证据对它们进行推断。 Python是一个广泛使用的编程语言,具有强大的数据分析和科学计算功能。因此,D-S证据理论在Python中得到了广泛应用。常用的Python库包括numpy、scipy和sklearn等。这些库提供了一些实现D-S证据理论所需的函数和工具。 在Python中,可以使用numpy库来实现D-S证据的计算。它提供了一些函数来计算证据、假设和置信度等指标。该库还提供了一些有用的工具来将数据转换为相应的D-S证据形式。 Sklearn库也提供了一些有用的函数,例如DecisionTreeClassifier,可以用来进行决策树分类,在这个过程中也使用了D-S证据理论。 总之,D-S证据理论在Python中具有重要的应用价值。它可以用来处理不确定性问题,例如在医学、金融、自然语言处理等领域中。相信在未来,随着Python的不断发展和完善,D-S证据理论在Python中的应用会越来越广泛。 ### 回答2: D-S证据理论是指通过对一组不完全可信的证据进行合并,从而得出一个相对可靠的结论的一种方法。这种理论可以被应用于各种领域,包括数据挖掘、决策分析等。Python是一种广泛使用的编程语言,它具有简单易学、易于扩展等优点,因此被大量应用于数据科学领域。在Python中,可以使用第三方库pyds来实现D-S证据理论。 使用pyds库可以轻松地将不完全可信的证据进行合并,并得出一个相对可靠的结论。例如,可以使用pyds库来对一组商品进行评估,从而得出哪些商品值得购买,哪些商品不值得购买。具体操作步骤为:先建立一个证据集合,将各种商品的特征作为证据,然后使用D-S证据理论对这些证据进行合并,得出每个商品的可靠性得分。最后,可以按照得分由高到低的顺序,来决定哪些商品值得购买。 总之,使用D-S证据理论和Python编程语言可以轻松地处理不完全可信的证据,在数据分析中有很大的应用潜力。 ### 回答3: D-S证据理论是一种基于证据的推理方法,它是由美国科学家Dempster和Shafer于20世纪60年代提出的。D-S证据理论常用于处理不确定性的问题,它将所有可能的事件分为两个集合:一是目标事件,而另外一个是目标事件的补集,将各种证据用证据函数表示出来,通过这些证据函数的组合来推断目标事件的可能性。这种方法具有更广泛的适用性和更好的处理效果。 Python是一个广受欢迎的编程语言,被广泛应用于各种领域,例如数据科学、机器学习、深度学习等。在处理D-S证据理论时,我们可以使用Python编写相关的算法。利用Python语言的简单性和灵活性,我们可以轻松地实现证据函数和似然函数,并通过它们的组合得到目标事件的可能性。同时,Python还提供了许多强大的库,例如NumPy和SciPy,用于科学计算和数据处理,这些库有效地提高了我们处理证据的效率和准确性。 总之,D-S证据理论和Python语言的结合为我们解决不确定性问题提供了一种有效的方法。我们可以使用Python编写程序来实现证据的处理和分析,从而更好地理解和应用D-S证据理论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值