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训练得出θ——这就是矩阵分解的意思啊!



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

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

  • 相关阅读:
    Java类加载机制
    Java内存模型
    遍历集合的常见方式,排序,用lambda表示是怎样的
    包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类
    接口
    继承
    面向对象的四大特征 封装 继承 多态 抽象
    面向对象
    二维数组及Arrays工具类
    数组(冒泡,选择,排序)
  • 原文地址:https://www.cnblogs.com/xing901022/p/9403911.html
Copyright © 2011-2022 走看看