zoukankan      html  css  js  c++  java
  • 提供推荐

    1. Collaborative Filtering

    Collaborative Filtering: 通过喜好相近的人构造推荐列表。

    如何表示喜好?用嵌套字典表示不同人对不同影片的评分。嵌套字典的数据结构就像一棵树,叶子节点(键值)表示最终的属性。(源代码下载地址)

    >>>from recommendations import critics
    >>> critics['Toby']
    {'Snakes on a Plane': 4.5, 'Superman Returns': 4.0, 'You, Me and Dupree': 1.0}
    >>> critics['Toby']['Superman Returns']
    4.0

    2. Finding Similar Users

    Euclidean Distance Score

    评价公式:

    该值越大,喜好越相似,没有共同评价过的电影,则返回 0.

    Pearson Correlation Score

    数据不是很规范,比如有人习惯给高分,有人习惯给低分,用皮尔逊相关度评价效果更好。

    Pearson Correlation 实际上就是两个向量的余弦值,等于两个向量中心化后(减去均值)的内积除以长度的乘积:

    同样,数值越大,两个向量角度越小,喜好越相似。此外,相似度度量方法还有 Jaccard 系数或者曼哈顿距离等,更多关于相似度度量信息可以参考这篇博客.

    Ranking the Critics

    根据不同的相似度度量方法返回从高到低排好序的的相似者.

    >>> from recommendations import *
    >>> topMatches(critics, 'Toby', similarity=sim_pearson, n=3)
    [(0.9912407071619299, 'Lisa Rose'), (0.9244734516419049, 'Mick LaSalle'), (0.8934051474415647, 'Claudia Puig')]

    3. Recommending Items

    现在我们只得到喜好相同的人,怎么才能得到推荐的物品?我们可以查找与自己品味相投的人,并从他们喜好的影片中找到自己没有看过的电影,但是这样不够全面。可以利用下面公式给自己没有看过的电影进行评分预测:

     

     

     

  • 相关阅读:
    TypeScript教程
    Xcode使用介绍之一:Xcode简介+创建App应用
    VSCode
    vscode 配置import @ 路径提示及代码智提
    踩坑:VScode 集成 eslint 插件
    VSCode配置ESLint
    如何安装Vscode软件及设置成中文界面?
    vscode 插件推荐
    1-VScode格式化ESlint-方法(最全最好用方法!)
    HTML5实践之歌词同步播放器
  • 原文地址:https://www.cnblogs.com/daniel-D/p/3192180.html
Copyright © 2011-2022 走看看