zoukankan      html  css  js  c++  java
  • 吴恩达机器学习笔记 —— 17 推荐系统

    本章讲述了推荐系统相关的知识,比如基于内容的推荐算法、基于协同过滤的推荐算法以及实践中遇到的问题。

    更多内容参考 机器学习&深度学习

    推荐系统是机器学习在工业界应用最广泛的方向,很多电子商务类、咨询类的平台都在做个性化推荐的工作,通过机器学习的算法让自己的平台个性定制,千人千面。

    比如我们拥有这样的数据集,其中nu代表用户的个数,nm代表物品的个数,r(i,j)为1代表用户j对物品i有评分,y(i,j)代表用户j对物品的分值。

    基于内容的推荐

    现在我们有了上面的数据集,即用户对电影的评分。还有电影的两个特征,浪漫指数和动作指数,假设我们针对每个用户都有一个θ,使得θTx能预测到一个分值——可以看做每个用户拥有一个线性回归的公式,通过这个公式,可以跟电影的两个特征(还有一个偏置项,固定为1)计算出分值。

    其中r(i,j)是用户J对电影i是否有评分,y(i,j)是对应的分值,θ(j)代表用户j的参数向量,x(i)代表电影i的特征向量,因此对于用户j对电影i的评分就是(θ(j))T(x(i)),m(j)是用户j评分的电影数量。因此就有下面的公式:

    协同过滤

    前面的算法有一个特点就是需要有每个电影的特征向量,这个需要人为的来标注,如果你的数据没有这种现成的向量,而是有用户的偏好特征。比如知道一个用户对两个特征的喜好程度x,又知道他对这个电影的评分,那么就可以猜测出来这个电影对应的特征指数了。

    比如上面的例子中如果用户的洗好向量是[0,5,0],对于第一个电影它的评分又是5,第五个电影评分时0,我们就可以猜到第一个电影的特征是[1,1,0],第五个电影是[1,0,1],这样就可以猜测出来每个电影的特征指数了。

    总结来说,如果有电影的特征向量,就可以猜测出来用户对电影的评分;如果有用户的特征偏好,也可以猜测出来电影的特征指数。还有一种简单的方式就是随机给定θ,然后训练得出x,再通过x训练得出θ——这就是矩阵分解的意思啊!



    这里讲到了通过评分矩阵可以计算相似物品,其实这也是物品协同过滤的核心:

    有一个实践的小技巧,如果用户对任何的物品都没有评分,那么可以先给他初始化成均值(我们在做推荐系统的时候,这种用户一般都不会用协同过滤来做推荐)

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/xing901022/p/9403911.html
Copyright © 2011-2022 走看看