精华内容
下载资源
问答
  • 对数似然比相似度

    万次阅读 2015-11-13 22:50:48
    最近在看mahout的相似性度量时,对其中的对数似然比相似度颇为好奇,由于书本上完全没有涉及到对数似然比相似度的计算原理,只是提供了一个函数接口,因此决定深入了解一下这个对数似然比相似度。下面mahout中的源码...

    最近在看mahout的相似性度量时,对其中的对数似然比相似度颇为好奇,由于书本上完全没有涉及到对数似然比相似度的计算原理,只是提供了一个函数接口,因此决定深入了解一下这个对数似然比相似度。下面mahout中的源码:

    public static double logLikelihoodRatio(int k11, int k12, int k21, int k22) {
            double rowEntropy = entropy(k11, k12) + entropy(k21, k22);
            double columnEntropy = entropy(k11, k21) + entropy(k12, k22);
            double matrixEntropy = entropy(k11, k12, k21, k22);
            return 2 * (matrixEntropy - rowEntropy - columnEntropy);
        }
    
        public static double entropy(int... elements) {
            double sum = 0;
            for (int element : elements) {
                sum += element;
            }
            double result = 0.0;
            for (int x : elements) {
                if (x < 0) {
                    throw new IllegalArgumentException(
                        "Should not have negative count for entropy computation: (" + x + ')');
                }
                int zeroFlag = (x == 0 ? 1 : 0);
                result += x * Math.log((x + zeroFlag) / sum);
            }
            return -result;
        }

    我以一个实际的例子来介绍一下其中的计算过程:假设有商品全集I={a,b,c,d,e,f},其中A用户偏好商品{a,b,c},B用户偏好商品{b,d},那么有如下矩阵:

    这里写图片描述

    • k11表示用户A和用户B的共同偏好的商品数量,显然只有商品b,因此值为1
    • k12表示用户A的特有偏好,即商品{a,c},因此值为2
    • k21表示用户B的特有偏好,即商品d,因此值为1
    • k22表示用户A、B的共同非偏好,有商品{e,f},值为2

    此外我们还定义以下变量N=k11+k12+k21+k22,即总商品数量。

    计算步骤如下:

    1. 计算行熵

      rowEntropy=k11+k12N(k11k11+k12logk11k11+k12+k12k11+k12logk12k11+k12)+k21+k22N(k21k21+k22logk21k21+k22+k22k21+k22logk22k21+k22)

      注:代码中k11+k12k21+k22N

    2. 计算列熵

      columEntropy=k11+k21N(k11k11+k21logk11k11+k21+k21k11+k21logk21k11+k21)+k12+k22N(k12k12+k22logk12k12+k22+k22k12+k22logk22k12+k22)

    3. 计算矩阵熵

      matrixEntropy=k11Nlogk11N+k12Nlogk12N+k21Nlogk21N+k22Nlogk22N

      注意:以上熵的计算均没有加负号,后面会讲到原因

    4. 计算相似度

      UserSimilarity=2(matrixEntropyrowEntropycolumnEntropy)

    如何来解释这个相似度的计算方式呢?我们先来看看行熵、列熵和矩阵熵分别代表什么含义:行熵以用户A的偏好和非偏好来划分商品空间,很明显它是一个条件熵,我个人认为相对合理的解释是对于一个商品,在给定它是否属于A偏好的条件下,预测商品属于k11k12k21k22四个空间中哪一个空间的不确定度;同理,列熵则代表给定商品是否属于B偏好的条件下,预测商品属于k11k12k21k22四个空间中哪一个空间的不确定度;矩阵熵则表示在没有任何条件下,预测商品属于四个空间中哪一个空间的不确定度。我们以下图来看:

    这里写图片描述

    在给定A偏好与否的条件,预测商品属于哪一个空间的不确定度为S1+S2;在给定B偏好与否的条件下,不确定度为S2+S3;在不给定任何条件下,预测商品属于哪一个空间的不确定度为S1+S2+S3。我的理解这个S2表示的就是给定A、B偏好条件下的公共的不确定度,其表达的就是如果A喜欢某个商品,对B也具有协同效应;如果B喜欢某个商品,对A也具有协同效应,这种公共不确定度或者说是关联其实反映的就是A用户与B用户的相似程度。由于前面计算熵的时候没有加上负号,步骤四中正好得到一个(S2),就变成正数了,至于为什么乘上2及1N去哪里了我也不清楚,但这只是一种幅度变换,不影响相对关系。

    当然参考论文Accurate methods for the statistics of surprise and coincidence,我们还可以从相关性的角度去解释这个对数似然比相似度。我们假设A偏好空间和A非偏好空间中概率分布满足二项分布,并进行如下假设:

    • 假设用户B的喜好与用户1独立无关L(H1)

      BP=k11+k21k11+k12+k21+k22

      形成A偏好空间这种分布的概率就为
      Ck11k11+k12Pk11(1P)k12

      形成A非偏好空间这种分布的概率为
      Ck21k21+k22Pk21(1P)k22

      形成第一幅图中矩阵块分布的概率即为上面两个概率的乘积
      L(H1)=Ck11k11+k12Pk11(1P)k12Ck21k21+k22Pk21(1P)k22

    • 假设用户B的喜好与用户1相关L(H2)
      在A偏好空间,用户B喜欢一个商品的概率为

      P1=k11k11+k12

      形成A偏好空间这种分布的概率就为
      Ck11k11+k12Pk111(1P1)k12

      在A非偏好空间,用户B喜欢一个商品的概率为
      P2=k21k21+k22

      形成A非偏好空间这种分布的概率就为
      Ck21k21+k22Pk212(1P2)k22

      形成第一幅图中矩阵块分布的概率即为上面两个概率的乘积
      L(H1)=Ck11k11+k12Pk111(1P1)k12Ck21k21+k22Pk212(1P2)k22

    用户A、B的相似度就为

    UserSimilarity=2logL(H1)L(H2)

    式中2log和卡方检验渐近有关,上述假设是按照用户A来划分空间,按用户B来划分空间也可以得到相同的结论,最终计算出来的结果与采用上面行熵、列熵、矩阵熵计算出来的结果一致,表明对数似然比相似度其实反映的就是用户之间喜欢物品的相关性。

    展开全文
  • 一种基于对数似然比的解扩方法
  • 基于对数似然比的协作频谱感知软融合方案
  • 对数似然比LLR公式的问题

    千次阅读 2020-05-07 23:42:16
    对数似然比LLR公式的问题: 在MATLAB中,记住在利用蒙特卡洛求解互信息的时候,对数似然比公式,自己当时设计的时候是0表示成为了1,1表示成为了-1.

    对数似然比LLR公式的问题:

    在MATLAB中,记住在利用蒙特卡洛求解互信息的时候,对数似然比公式,自己当时设计的时候是0表示成为了1,1表示成为了-1.

    展开全文
  • 高阶QAM调制下基于对数似然比门限的自适应解调方案
  • 一种基于对数似然比的改进的格子减少辅助MIMO检测方案
  • 针对现有学习方法准确率不高,提出一种结合对数似然比(Log-Likelihood Ratio,LLR)的本体学习方法,采用对数似然比计算概念与领域及概念与概念之间的相关性,将其应用到概念与关系提取中。实验结果表明,结合对数...
  • Python 实现对数似然比对比曲线及其代码问题分析 主要解决问题: 画出空间统计一个圆柱扫描内部期望为10个病例,全局总数分别为 50、200 和 2000 时,窗口内实际发生例数从 1 到 30 变化时相应的对数似然比曲线。 ...

    Python 实现对数似然比对比曲线及其代码问题分析

    主要解决问题:
    画出空间统计一个圆柱扫描内部期望为10个病例,全局总数分别为 50、200 和 2000 时,窗口内实际发生例数从 1 到 30 变化时相应的对数似然比曲线。
    预期结果:
    这里写图片描述

    (1)公式分析:
    下面公式为为对数广义似然比(LGLR):
    这里写图片描述
    其中,C是全部空间时间上的病例总数

    C=z=1Zd=1DCzd
    ,
    CA 是圆柱区内空间时间上的病例总数CA=z,dACzd$  \upmu_A $ 是圆柱区内空间时间上的病例总数期望值这里写图片描述。当计算结果GLR_A的值越大,说明在圆柱区 A 内病例的聚集程度就越高。因此,可以用GLR_A来作为空间和时间区域内的预警信号指标。广义似然比标志了区域A 上实际发生事件数C_A与期望发生事件数 A m 之间的差异度,并以全局上在区域 A 之外的事件数比值( ) ( ) / AA C C Cm --作为参照。
    (2) 针对问题代码实现:

    import numpy as np
    import matplotlib.pyplot as plt
    import math
    
    mu_A = 10   #窗口内期望病例数
    C_sum = [50,200,2000]  #全局总数
    #C_sum = 200 #全局总数
    print(C_sum[2])
    C_A_sum = np.arange(1,31,1)  #窗口内实际发生病例从 1 到 30 变化
    C_A_sumArr = []  #定义横坐标变量数组
    LGLR_AArr =  []    #定义纵坐标变量数组1,c=50
    LGLR_AArr1 = []   #定义纵坐标变量数组2,c=200
    LGLR_AArr2 = []   #定义纵坐标变量数组3,c=2000
    
    for x in C_A_sum:
        C_A_sumArr.append(x)
        LGLR_AArr.append(x * math.log(x/mu_A)+(C_sum[0]-x) * math.log((C_sum[0]-x)/(C_sum[0]-mu_A)))
    
    for x in C_A_sum:
        C_A_sumArr.append(x)
        LGLR_AArr1.append(x * math.log(x/mu_A)+(C_sum[1]-x) * math.log((C_sum[1]-x)/(C_sum[1]-mu_A)))
    
    for x in C_A_sum:
        C_A_sumArr.append(x)
        LGLR_AArr2.append(x * math.log(x/mu_A)+(C_sum[2]-x) * math.log((C_sum[2]-x)/(C_sum[2]-mu_A)))
    
    #print(LGLR_AArr)
    # 输出
    plt.plot(C_A_sum, LGLR_AArr, color='green', label='c=50')
    plt.plot(C_A_sum, LGLR_AArr1,  color='red', label='c=200')
    plt.plot(C_A_sum, LGLR_AArr2,  color='skyblue', label='c=2000')
    
    plt.xlim([0, 30])    #横轴   
    plt.ylim([0, 20])    #纵轴
    
    #标题
    plt.title('likelihood value')  
    plt.xlabel('C_A')
    plt.ylabel('LGLR')
    plt.legend(loc='best')
    
    plt.show()  #显示图

    则可得到预期效果。

    (3)调试过程问题:
    1、当用到math.log()函数值,总是出现如下错误:
    原因:math.log()不能对矩阵进行直接操作。
    TypeError: only length-1 arrays can be converted to Python scalars 分析

    2、当用到math包时,有如下错误提醒:
    ValueError: math domain error
    原因:某些操作不符合数学定义,如对负数取对数,对负数开平方。
    分析

    展开全文
  • 对数似然比LLR(likelihood Rate)在通信中通常用于软解码。 不管发端发比特1还是比特0,收端都可能误判。如果收到信号r,正确判为0的概率与正确判为1的概率的比值就是似然比,再取个自然对数就是对数似然比了。所以...
  • 由于认知无线电网络的开放性,频谱感知数据篡改(SSDF)可以很容易地攻击频谱感知,而当前的研究工作中没有提出有效的算法,因此本文将恶意用户删除引入加权序列对数加权算法。似然比检测(WSPRT)。 终端的权重由其...
  • 由于认知无线电网络的开放性,频谱感知数据篡改(SSDF)可以很容易地攻击频谱感知,而当前的研究工作中没有提出有效的算法,因此本文将恶意用户删除引入加权序列对数加权算法。似然比检测(WSPRT)。 终端的权重由其...
  • 第三章 LLR(对数似然比)知识点补充

    千次阅读 2020-07-04 23:29:11
    Q1:“似然”概念解析: 知乎上很多大神解释,个人学习总结了一下。”似然”与“概率“两个概念是相对的。 概率:已知概率模型,推测某个事件发生的概率; 似然:根据已得到的数据集合,推测符合的概率模型;...

    Q1:“似然”概念解析:

    知乎上很多大神解释,个人学习总结了一下。”似然”与“概率“两个概念是相对的。

    概率:已知概率模型,推测某个事件发生的概率;

    似然:根据已得到的数据集合,推测符合的概率模型;

    举个例子,下图是根据一组数据画出的概率密度曲线,你觉得这组数据符合什么概率分布?一眼看上去符合高斯分布。

    这种推导过程对似然函数求解过程。根据已有的数据,推测该组数据符合的概率模型。

    Q2:先验概率和后验概率

    先验概率:根据字面记忆,先有的经验,推导事件发生概率;

    后验概率:某个事件已发生,推导导致这个事件发生的各种原因的概率大小;

    如何LLR概念对应起来呢?

    举个不恰当的例子,假设发射机发射一个离散QPSK调制信号,信号经AWGN信道至接收机,采样后得到 r = 0.2 + 0.2i;

    QPSK解调的目的,就是推导出发送端发出的原始调制符号,下图四个角上为标准调制信号。经过信道后,信号可能劣化,接收端可能接收到比较差的信号,LLR的目的根据接收到的信号,判断发送端发的是哪个调制信号的可能性大,可能性越大,判定的结果越可靠。LLR推导过程,还是有很多资料的。LLR最终在DSP上实现,是优化的、工程可实现的形式。

    以QPSK为例,接收的信号若实部real(r) > 0,D0 = 0,反之 D0 = 1;虚部 imag(r) > 0,D1 = 0 ,反之D1 = 1;

    ​%% Constants
    clc;clear;close all;
    FRM=2048;
    Trellis=poly2trellis(4, [13 15], 13);
    Indices=randperm(FRM);
    MaxNumErrs=200;MaxNumBits=1e7;
    EbNo_vector=0:10;BER_vector=zeros(size(EbNo_vector));
    %% Initializations
    Modulator      = comm.QPSKModulator('BitInput',true);
    AWGN             = comm.AWGNChannel;
    DeModulator =  comm.QPSKDemodulator('BitOutput',true,...
        'DecisionMethod','Log-likelihood ratio',...
        'VarianceSource', 'Input port');
    BitError           = comm.ErrorRate;
    TurboEncoder=comm.TurboEncoder(...
        'TrellisStructure',Trellis,...
        'InterleaverIndices',Indices);
    TurboDecoder=comm.TurboDecoder(...
        'TrellisStructure',Trellis,...
        'InterleaverIndices',Indices,...
        'NumIterations',6);
    %% Outer Loop computing Bit-error rate as a function of EbNo
    % for EbNo = EbNo_vector
    %     snr = EbNo + 10*log10(2);
        snr = 10;
        noise_var = 10.^(-snr/10);
        AWGN.EbNo=snr;
        numErrs = 0; numBits = 0;results=zeros(3,1);
        %% Inner loop modeling transmitter, channel model and receiver for each EbNo
    %     while ((numErrs < MaxNumErrs) && (numBits < MaxNumBits))  
            % Transmitter
            u             = randi([0 1], FRM,1);                  % Generate random bits
    %         encoded      = TurboEncoder.step(u);                                   % Turbo Encoder
            mod_sig = step(Modulator,   u);                % QPSK Modulator
                   
            scatterplot(mod_sig); 
            % Channel
            rx_sig  = step(AWGN,        mod_sig);        % AWGN channel
    %         rx_sig = awgn(mod_sig,20,'measured');
            % Receiver
    
            
            scatterplot(rx_sig); 
            
            %%%%%% QPSK LLR优化后实现%%%%%%%%
            len = length(rx_sig);
            
            for i=1:len
                D0 = real(rx_sig(i));
                D1 = imag(rx_sig(i));
                
                llr_test(2*i-1:2*i) = [D1 D0];
                
            end
            llr_test = llr_test.';
            
            llr        =  DeModulator.step(rx_sig,noise_var);      % QPSK Demodulator
            y            = sign(-llr);
    %         y            = sign(-llr_test);
            y(find(y == -1)) = 0;
            results        = BitError.step(u, y);                       % Update BER
    
            numErrs = results(2);
            numBits = results(3);
    %     end
        % Compute BER
        ber = results(1); bits= results(3);
        %% Clean up & collect results
        reset(BitError);
        BER_vector(EbNo+1)=ber;
    % end​

     

     

     

     

     

    展开全文
  • //基于对数似然比更好的计算相似度(量用户) //所谓对数似然比为选取两个用户进行比较的时后进行筛选 //相似性为可以解释为发生重叠为发生重叠的非偶然概率 package byuser; import java.io.File; import java.io...
  • 重点是二进制分类器(例如说话者验证),其中分类器的输出采用经过良好校准的对数似然比(LLR)的形式。这些工具包括: PAV和ROCCH得分分析。 DET曲线和EER DCF和minDCF 贝叶斯错误率图 Cllr 简单的线性融合和...
  • 采用对数似然比求解的迭代公式推导: 考虑 如上图,将L的部分看为一个整体,用 exp(a)和exp(b)代替,并对式子左右都取对数,则公式变为如下所示: 对数似然比 上述公式等效一下公式: 进一步可等效为:...
  • 短波串行MODEM中8PSK维特比软译码的DSP实现,蔚原野,赵振纲,目前广泛应用的卷积码译码算法,绝大多数使用对数似然比作为参数,传统的对数似然比计算方法对于硬件实现来说太过复杂,不利于实
  • hr:QAM解调的公式?ls,mmse估计公式? 我说的是项目里用的边界...正确回答:如果收到信号r,正确判为0的概率与正确判为1的概率的比值就是似然比,再取个自然对数就是对数似然比了.所以公式应该是LLR = ln[p(r|b=0)...
  • 为抵抗无线通信信道的选择性衰落...时分组码(STBC) 码字矩阵和无线通信信道特性,推导了Turbo 码译码过程所需的对数似然比(LLR) ;采用多接收 天线的系统将各天线计算所得的对数似然比最大比合并(MRC) 再进行迭代译码.
  • 一类随机偏差定理与矩母函数方法,李文汉,李高荣,本文通过引入对数似然比,作为任意非负整数的随机变量序列与独立的随机变量序列之间偏差的度量,研究了有关取值为非负整数的随机
  • 为了在只有一根接收天线的长期演进(LTE)通信终端上,实现对双天线发射的空分复用数据进行解码,根据译码器输入的对数似然比(LLR)的计算原理,利用单天线数据生成参考星座图,计算了对数似然比,并推导出了该方法的公式,...
  • 建立了大气激光通信信道模型和LDPC码的识别模型,给出了大气激光通信湍流信道下校验关系对数似然比函数表达式;将基本蚁群算法与LDPC码的识别问题结合,将对数似然比函数经过处理作为目标函数,通过不断迭代每次搜索...
  • 2020-09-11

    2020-09-11 12:28:32
    对数似然比相似度(转载) 反映的就是用户之间喜欢物品的相关性!!! 链接:https://blog.csdn.net/u014374284/article/details/49823557
  • 随机缺失响应下单指数模型的统计推断,薛留根,杨随根,本文研究了单指数模型中的缺失数据问题. 一个纠偏的经验似然方法来推断指标系数和响应均值, 得到了一类渐近卡方的经验对数似然比,�
  • 由于对数似然比计算涉及对数运算,因此利用取最大值代替指数对数运算来进行简化.仿真结果表明,在AWGN信道下,信噪比为8 dB时,使用简化的软解调算法,2048QAM-LDPC系统的误码率可达到3×10-5,4096QAM-LDPC系统的...
  • 2.1 对数似然比距离 2.2 Itakura–Saito距离 2.3 倒谱距离 3. 基于感知的语音质量评价标准 3.1 加权谱倾斜测度 3.2 PESQ 4. 总结 语音客观评价标准一般分为语音质量评价和语音可懂度评价,这里先介绍语音质量...
  • 借助Box-Cox变换技术用于hedonic住房价格模型估计,通过对数似然比和样本外Theil不相等系数检验,对已有文献中常见函数形式的拟合效果进行评估,从而确定最佳的函数形式....
  • soft_demapper_hp.pdf

    2020-08-23 14:56:45
    著名的惠普OFDM检测对数似然比(LLR)计算方法论文。非常经典。 In this paper a comparison in performance between hard and soft decision Viterbi decoding, with application to the HIPERLAN/2 standard, is ...
  • 主要内容: 1.信噪比(Signal-to-NoiseRatio,SNR) 2.分段信噪比(Segment Signal-to-Noise Ratio,SegSNR) 3.PESQ...4.对数似然比测度(LogLikelihoodRatioMeasure,LLR) 5.对数谱距离(logspect...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

对数似然比