計算相似度的LLR演算法

2021-09-25 02:14:53 字數 1517 閱讀 8287

loglikelihood ratio test是一種假設檢驗的方法。wikipedia上的簡介:

surprise and coincidence及相應accuratemethods for the statistics of surprise and coincidence中llr(log-likelihood ratio)作為新版mahout的itemcf的相似度度量方法。該演算法簡單有效,mahout捨棄了其他所有物品相似度度量方法,如cosine、pearson等,可見該演算法確有獨到之處。

下表描述了在itemcf中item 1, item 2之間喜好關係。

k11表示同時喜歡item1和item2的user數。

k12表示喜歡item1但是不喜歡item2的user數。

k21表示不喜歡item1但是喜歡item2的user數。

k22表示同時不喜歡item1和item2的user數。

user cf中使用loglikelihood ratio作為相似度

下表描述了user 1, user 2之間喜好關係。

k11表示user 1和user 2都喜好的item數。

k12表示user 1喜好但user 2不喜好的item數。

k21表示user 1不喜好但user 2喜好的item數。

k22表示user 1和user 2都不喜好的item數。

h0:user 1和user 2喜好不相關

p(x1∣∣x2)=p(x1∣∣x2˜)

h1:user 1和user 2喜好相關

scala**如下:

package com.iqiyi.read.modellib.model

import com.google.common.base.preconditions

import org.apache.spark.

import org.slf4j.

/** *

*/class loglikelihoodratio

2.0 * (rowentropy + columnentropy - matrixentropy)

} //資訊熵公式

def entropy(elements: long*): double =

else

result += x * math.log((x + zeroflag) / sum)

}-result

}}

參考

使用余弦相似度演算法計算文字相似度

在求相似度的時候經常會有以下一些方法,1.基於詞向量 2.基於字元的 3.基於概率統計的 4.基於詞嵌入模型的 在求文字相似度的時候經常會使用余弦相似度來求,下面來記錄一下余弦相似度的原理。余弦相似度量 計算個體間的相似度。相似度越小,距離越大。相似度越大,距離越小。假設有3個物品,item1,it...

相似度計算

從多個維度分析兩組資料的相似度,比如大的文字使用word2vec轉成向量,類別根據最大的類別數量n拆成n維0或1表示的vector,數值型別歸一化之後表示乙個維度,然後根據cos l1 l2等方式計算相似度 可以用於推薦系統 協同過濾等演算法 注意double值的精度處理 將向量根據座標值,繪製到向...

相似度計算

author wepon blog machine learning in action 筆記,相似度計算,基於python numpy。假如我們希望相似度的值在0 1之間,並且越相似,值越大,有哪些辦法?1 計算歐式距離,然後根據 相似度 1 1 距離 計算相似度。2 皮爾遜相關係數,在numpy...