这个Paper结合BOE之间的距离的思想,对Murphy的方法进行了改进
代码注解:虽然代码写的还是一如既往的臭,仅仅知识为了获得运行结果而写,但还是基本复现了Paper。
#基于加权质量的平均法
#1. 计算BOE之间的距离d(m_i,m_j)
##1.1. 计算m_i∪m_j
##1.2. 利用并集的基数构建向量矩阵 vector_m_i,vector_m_j
##1.3. 构建D=矩阵,大小为|m_i∪m_j|*|m_i∪m_j|
##1.4. 利用公式求d(m_i,m_j)
#2. 利用上面的距离导出BOE之间的相似度Sim(m_i,m_j)
#3.利用相似度Sim(m_i,m_j)构建相似矩阵SMM
#4. 计算各个BOE的支持度 Sup(m_i)
#5. 将支持度Sup(m_i)进行规范化转为权重因子 Crd_i
#6. 计算出加权的平均质量(BPA)
#7. 利用Murphy的方法进行迭代计算
#*********************切割线*****************************#
import pandas as pd
import numpy as np
#数据类型规定#
#1、初始状态的BOE的数据类型为字典dict,例如boe1={"A":0.5,"B":0.2,"C":0.3}
# boe1={"A":0.5,"B":0.2,"C":0.3}
# boe2={"A":0,"B":0.9,"C":0.1}
# boe3={"A":0.55,"B":0.1,"AC":0.35}
# boe4={"A":0.55,"B":0.1,"AC":0.35}
# boe5={"A":0.6,"B":0.1,"AC":0.3}
########准备函数区#################
#抽取字典中的key值,并装进集合中,并且返回集合
def focal_Element(boe):
key_m=[];
m_key=boe.keys();
for item in m_key:
key_m.append(item)
keym_set=set(key_m);
return keym_set;
#*********************切割线*****************************#
#计算任意两个BOE中的并集
def setUnion(boeI,boeJ):
#提取集合
setBoe1=focal_Element(boeI);
setBoe2=focal_Element(boeJ);
return setBoe1.union(setBoe2);
#构建列向量,生成n*2的矩阵
#第一列:vector(boeI)
#第二列:vector(boeJ)
def columnVector(boeI,boeJ):
unionSets=setUnion(boeI,boeJ);
list_name=["key","boeI","boeII"];#这是矩阵的第一行
list_matrix=[];
list_matrix.append(list_name);
for item in unionSets:
list_value = list();
list_value.append(item)
if item in boeI.keys():
value_I=boeI[item];
else:
value_I=0;
list_value.append(value_I);
if item in boeJ.keys():
value_J=boeJ[item];
else:
value_J=0;
list_value.append(value_J);
list_matrix.append(list_value);#将所有的列表装入
return np.array(list_matrix);
#返回vector_1-vector_2的结果
def vectorDifference(boeI,boeJ):
vector_1_2=columnVector(boeI,boeJ);#生成记录两个列向量的矩阵
#下面进行切片操作
vector_1=vector_1_2[:,(0,1)];#第一个列向量
vector_2=vector_1_2[:,(0,2)];#第二个列向量
line,column=vector_1.shape;
for i in range(1,line):
for j in range(1,line):
if(vector_1[i,0]==vector_2[j,0]):
vector_1[i,1]=float(vector_1[i,1])-float(vector_2[j,1]);
vector_1[0,1

本文介绍了一种改进的Murphy方法,通过计算基本概率分配(BOE)间的距离及相似度,构建相似矩阵并计算加权平均质量(BPA),最后通过迭代计算来提高证据组合的效果。
最低0.47元/天 解锁文章
1700





