以一个实际的例子来介绍一下其中的计算过程:假设有商品全集I={a,b,c,d,e,f},其中A用户偏好商品{a,b,c},B用户偏好商品{b,d},那么有如图2-5矩阵。
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)计算行熵(www.xing528.com)
rowEntropy=k11+k12 N(k11 k11+k12 log k11 k11+k12+k12 k11+k12 log k12 k11+k12)+k21+k22N(k21 k21+k22 log k21 k21+k22+k22 k21+k22 log k22 k21+k22)
(2)计算列熵
columEntropy=k11+k21 N(k11 k11+k21 log k11 k11+k21+k21 k11+k21 log k21 k11+k21)+k12+k22 N(k12 k12+k22 log k12 k12+k22+k22 k12+k22 log k22 k12+k22)
(3)计算矩阵熵
matrixEntropy=k11Nlog k11 N+k12Nlog k12 N+k21Nlog k21 N+k22N log k22 N
(4)计算相似度
UserSimilarity=2*(matrixEntropy-rowEntropy-columnEntropy)
对数似然相似度处理无打分的偏好数据时,效果较好。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。