建立物品的同现矩阵的过程 和 同现矩阵*评分矩阵的意义
建立同现矩阵的过程
在协同过滤算法中同现矩阵的建立是极其关键的一部,而在大多数的博客文章中大多都没有详细说明矩阵的建立过程。在此详细说明一下:
原始数据如下所示:
1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.0
3,104,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0
对这些数据建立的同现矩阵如下:
[101] [102] [103] [104] [105] [106] [107]
[101] 5 3 4 4 2 2 1
[102] 3 3 3 2 1 1 0
[103] 4 3 4 3 1 2 0
[104] 4 2 3 4 2 2 1
[105] 2 1 1 2 2 1 1
[106] 2 1 2 2 1 2 0
[107] 1 0 0 1 1 0 1
建立过程解释:
1.针对用户 1 对电影101 102 103 进行了评分,那么会在上述的矩阵如下位置写 1 :
(101,101)(101,102)(101,103)
(102,101)(102,102)(102,103)
(103,101)(103,102)(103,103)
即对101,102,103进行组合产生3*3个位置点,在对应的位置写1就行。
针对所有的用户进行上述操作,然后将所有的结果相加,最后就可以得到同现矩阵。
同现矩阵*评分矩阵的意义
举个用户3对物品102是否感兴趣的例子:
用户3对所有物品的评分, 有评分说明用户3喜欢这东西
同现矩阵其实就是物品与物品之间的关联度, 这个关联度由所有用户对所有物品的评分决定。
同现的意思就是同时出现的意思,就是说,喜欢 101 的时候同时喜欢 102 。
比如第一条, 说明同时有3个用户喜欢 101 与 102。意思就是说,在3个用户的各自喜好列表中 101 和 102 同时出现了。
计算推荐得分, 其意义是: 比如第5行, 用户3很喜欢物品105(给了得了4.5), 同时由其他用户也知道喜欢物品105的对物品102的喜欢程度(得分2), 两者相乘表示用户3因为喜欢物品105 推算出同时也喜欢物品102的得分。
用户3对物品102 兴趣总得分