无敌的Log-Likelihood Ratio(1)——LLR的计算方式

本文详细介绍了Log-Likelihood Ratio(LLR)在推荐系统中的应用,包括其计算方式和代码实现。LLR因其简单有效及可扩展性,被广泛应用于推荐系统中的相似度度量。文章还提供了Mahout库中LLR计算的具体代码。


   T e d    D u n n i n g Ted\; Dunning TedDunning 《 A c c u r a t e    M e t h o d s    f o r    t h e    S t a t i s t i c s    o f    S u r p r i s e    a n d    C o i n c i d e n c e 》 《Accurate\; Methods\; for\; the\; Statistics\; of\; Surprise\; and\; Coincidence》 AccurateMethodsfortheStatisticsofSurpriseandCoincidence中介绍了 L o g − L i k e h o o d    R a t i o Log-Likehood\; Ratio LogLikehoodRatio在文本计算中的基本使用。 L L R LLR LLR因为实现简单、有效并且具有大规模数据上的可扩展性,能够被很好的使用到工业系统中。因此基于 L L R LLR LLR的相似度度量广泛应用在推荐系统等多种应用当中。
  在这篇Blog中,我们忽略 《 A c c u r a t e    M e t h o d s    f o r    t h e    S t a t i s t i c s    o f    S u r p r i s e    a n d    C o i n c i d e n c e 》 《Accurate\; Methods\; for\; the\; Statistics\; of\; Surprise\; and\; Coincidence》 AccurateMethodsfortheStatisticsofSurpriseandCoincidence中对 L L R LLR LLR过多的冗余描述,主要集中的去关注 L L R LLR LLR的计算方式和现有的一些简单有效的代码实现。
  本篇博客的组织方式如下。在章节1中,以最简单的方式讨论了 L o g − L i k e l i h o o d    R a t i o Log-Likelihood\; Ratio LogLikelihoodRatio相似度的计算方式,在章节2中讨论了 L o g − L i k e l i h o o d    R a t i o Log-Likelihood\; Ratio LogLikelihoodRatio的具体的代码实现,以及一些可以现用的相似度计算工具。

1. LLR的计算方式

  在计算两个事件(例如推荐系统中的点击行为)的 L L R LLR LLR值来做相似度衡量的时候,我们通过两个事件的计数来计算事件之间的相似度。接下来我们以推荐系统中物品相似度的计算为例来介绍 L L R LLR LLR的计算方式。
  有两个物品分别为物品 i i i和物品 j j j。对应事件计数的简单形式化描述如下:
k 11 k_{11} k11:表示同时浏览了物品 i i i和物品 j j j的用户。
k 12 k_{12} k12:表示浏览了物品 i i i,但是没有浏览物品 j j j的用户。
k 21 k_{21} k21:表示浏览了物品 j j j,但是没有浏览物品 i i i的用户。
k 22 k_{22} k22:表示没有浏览物品 i i i,并且没有浏览物品 j j j的用户。
根据上述,我们可以得到如下的一个表格:

事件 浏览 I t e m    i Item\;i Itemi 没有浏览 I t e m    i Item\;i Itemi
浏览 I t e m    j Item\; j Itemj k 11 k_{11} k11 k 21 k_{21} k21
没有浏览 I t e m    j Item\;j Itemj k 12 k_{12} k12 k 22 k_{22} k22

I t e m    i Item\; i Itemi I t e m    j Item\;j Itemj L L R LLR LLR计算公式如下:
S = 2 × ( H m − H c − H r ) S=2\times (H_m - H_c - H_r) S=2×(HmHcHr)
其中:
H m H_m Hm表示上述矩阵的矩阵熵,总体的计算公式如下:
H m = − ( k 11 N    l o g ( k 11 N ) + k 12 N    l o g ( k 12 N ) + k 21 N    l o g ( k 21 N ) + k 22 N    l o g ( k 22 N ) ) H_m = - (\frac{k_{11}}{N}\;log(\frac{k_{11}}{N}) + \frac{k_{12}}{N}\;log(\frac{k_{12}}{N}) + \frac{k_{21}}{N}\;log(\frac{k_{21}}{N}) + \frac{k_{22}}{N}\;log(\frac{k_{22}}{N})) Hm=(Nk11log(Nk11)+Nk

警告: 无法加载工具箱路径缓存 C:\Users\Administrator\AppData\Local\MathWorks\MATLAB\R2024b\toolbox_cache-24.2.0-390930909-win64.xml。该缓存文件的格式不正确。退出 MATLAB 时将重新生成该文件。 >> help ldpcdecode --- 未找到 ldpcdecode。改为显示 ldpcDecode 的帮助。--- ldpcDecode - Decode binary LDPC code This MATLAB function decodes the input log-likelihood ratio (LLR), llr, using the LDPC matrix specified by the input ldpcDecoderConfig configuration object, decodercfg. 语法 [Y,actualnumiter,finalparitychecks] = ldpcDecode(llr,decodercfg,maxnumiter) [Y,actualnumiter,finalparitychecks] = ldpcDecode(llr,decodercfg,maxnumiter,Name=Value) 输入参数 llr - Log-likelihood ratios matrix decodercfg - LDPC decoder configuration ldpcDecoderConfig object maxnumiter - Maximum number of decoding iterations positive scalar 名称-值参数 OutputFormat - Output format 'info' (默认值) | 'whole' DecisionType - Decision type 'hard' (默认值) | 'soft' MinSumScalingFactor - Scaling factor for normalized min-sum decoding algorithm 0.75 (默认值) | scalar in the range (0, 1] MinSumOffset - Offset for min-sum decoding algorithm 0.5 (默认值) | scalar Termination - Decoding termination criteria 'early' (默认值) | 'max' Multithreaded - Enable multithreaded execution true or 1 (默认值) | false or 0 输出参数 Y - Decoded codewords matrix actualnumiter - Actual number of decoding iterations row vector finalparitychecks - Final parity checks for each codeword matrix 示例 Decode Rate 3/4 LDPC Codewords LDPC Decoding Using GPU 另请参阅 ldpcEncode, ldpcQuasiCyclicMatrix, dvbs2ldpc, ldpcDecoderConfig, ldpcEncoderConfig 已在 R2021b 中的 Communications Toolbox 中引入 ldpcDecode 的文档
03-28
LLR(电感 - 电感 - 电阻)计算在电力系统等领域有着重要意义。 ### 原理 LLR计算主要基于电路的基本定律,如基尔霍夫定律。在LLR型交流网络等效元件中,电感元件会产生感抗 \(X_L = \omega L\)(其中 \(\omega\) 是角频率,\(L\) 是电感值),电阻元件则遵循欧姆定律 \(V = IR\)。通过对电路中各元件的电压、电流关系进行分析,利用基尔霍夫电压定律(KVL)和基尔霍夫电流定律(KCL)来建立方程求解。例如对于一个简单的LLR串联电路,根据KVL,总电压 \(V\) 等于各元件电压之和,即 \(V = V_{L1}+V_{L2}+V_R\),其中 \(V_{L1}=j\omega L_1I\),\(V_{L2}=j\omega L_2I\),\(V_R = RI\)(\(j\) 为虚数单位),由此可进一步分析电路的阻抗等特性 [^1]。 ### 方法 - **解析法**:对于简单的LLR电路,可以通过数学推导直接得出其阻抗等参数。例如对于上述串联LLR电路,其总阻抗 \(Z = R + j\omega(L_1 + L_2)\)- **数值计算法**:当电路较为复杂时,可借助计算机软件进行数值计算。如利用Simulink模型,通过搭建电路模型,设置各元件参数,运行模型来计算阻抗等特性。在Simulink中可以方便地改变元件参数、输入信号等,从而深入了解LLR型交流网络等效元件的阻抗特性,并预测可能的谐振频率 [^1]。 ### 应用 - **HVDC链路研究**:LLR型交流网络等效元件在HVDC链路研究中具有广泛的应用前景。通过对LLR计算和分析,可以优化网络配置,提高系统的可靠性和效率 [^1]。 - **电力系统稳定性分析**:了解LLR电路的特性有助于分析电力系统在不同工况下的稳定性,例如在系统受到扰动时,LLR元件的响应会影响系统的动态特性。 - **故障预测**:通过监测LLR电路的参数变化,如阻抗、电流等,可以预测可能出现的故障情况,提前采取措施进行维护和修复。 ```python # 简单的LLR串联电路阻抗计算示例 import numpy as np # 定义参数 L1 = 0.1 # 第一个电感值,单位:H L2 = 0.2 # 第二个电感值,单位:H R = 10 # 电阻值,单位:Ω omega = 100 # 角频率,单位:rad/s # 计算感抗 XL1 = omega * L1 XL2 = omega * L2 # 计算总阻抗 Z = R + 1j * (XL1 + XL2) print(f"总阻抗 Z = {Z} Ω") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值