zoukankan      html  css  js  c++  java
  • User-Based Collaborative Recommender System

    Collaborative Recommender System基于User给Item的打分表,认为相似度很高的用户,会对同一个item给出相似的分数,找出K个相似度最高的用户,集合他们的打分,来推算目标用户对于某一item的打分。

    1、每个用户打分的习惯范围不同,比如Bob习惯给出的最高分是5分,而Alice则只愿意在1-3分区间打分,所以我们不可能因为Bob和Alice相似度高,就预测Alice会给某个喜欢的item打5分。所以,在预测时,我们需要参考每个人的打分均值

    2、将每个人的打分进行Feature Scaling,即用原始分数减去个人的打分均值,得出的分数是基于每个人均值的偏离,公式如下:

    3、计算两个用户u和v的相似度,我们采用Pearson公式,计算范围仅限于u和v都打过分的item,但均值要用各自的整体均值(因为交集有可能很少):

    4、根据每个用户与target user的相似度不同,赋予不同的权重,然后将加权得到的偏离值与target user的均值进行相加,得到最终预测的分数:

      

     举例如下:这是一张打分表,我们需要预测出用户3对于item1和item6的打分:

     我们使用Pearson相似度,其区间是[-1,+1],+1表示完全相似,-1表示相反。所以,可以得出:

    第二步可以将原打分矩阵,通过Mean Centering转化成如下形式:

  • 相关阅读:
    vuesocket.io在单文件中使用(进入到单文件再发请求)
    el-tree设置默认展开及选中
    Vue项目中解决跨域问题
    echarts堆叠条形图计算总数()
    原生js实现点击目标区域外侧触发事件
    js构造树形菜单
    wangEditor服务器上传图片(Vue使用)
    webpack(6) 打包多页应用和sourcemap 使用
    NoSql相关
    Markdown
  • 原文地址:https://www.cnblogs.com/rhyswang/p/8357608.html
Copyright © 2011-2022 走看看