使用matlab计算两个证据间的Jousselme距离

人生第一篇博客,也是为了迎接自己的研究生学习新阶段,希望能沉下心做更多的积累。这是我毕业设计在做证据理论研究的时候遇到的问题,当时百度不出一个具体清晰的算法实现代码,然后自己摸索一下,也算有个比较清晰的处理。(主要是这个方向可能太冷门了…)

计算公式整体思路

假设在识别框架 Θ 下,存在两个证据 E1 和 E2 及其基本信任分配函数 m1和 m2,焦元分别是 Ai和 Bj,将 m1 和 m2 视为行向量,则证据 m1和 m2间的 Jousselme距离可以表示

重点在于D,其中 D 为2NX2N对称矩阵(N = |Θ|),矩阵中元素为

|•| 表示集合的基,利用焦元 Ai和 Bj交集和并集的比值来表示它们的相似程度,称为Jaccard 系数。
整体来说,Jousselme距离就是通过矩阵的计算来体现两个证据间的差异程度。

matlab实现计算

  1. 计算集合的相似矩阵 (识别框架元素为n个)
function [ matrix ] = sim_D(n)
%   计算集合的相似矩阵(识别框架元素为n个)
    %初始化矩阵
    matrix=zeros(2^n,2^n);
    %得到识别框架的所有子集形成的矩阵
    s=ff2n(n);
    %根据集合相似度为矩阵赋值(对称矩阵)
    for i=2:2^n
        for j=i:2^n
            %计算两个子集之间的相似度
            a=[s(i,:);s(j,:)];
            D=1-pdist(a,'jaccard');
            matrix(i,j)=D;
            matrix(j,i)=D;
        end
    end
end
  1. 计算两个证据的Jousselme距离 (A为2个证据数据矩阵,D为相似矩阵)
function [d] = Jousselme(A,D)
    s = A(1,:)- A(2,:);
    d2 = s*D*s.';
    d = sqrt(d2/2);
end
  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值