机器学习入门 之《集体智慧编程》 推荐系统

本文介绍了一种基于用户或物品相似度的推荐系统实现方法——协同过滤。通过量化用户偏好并运用欧氏距离或皮尔逊相关系数计算相似度,进而为用户推荐可能感兴趣的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、协同过滤
    推荐系统比较简单的做法就是:要为一个人推荐他可能感兴趣的东西,通常在一群人中找到与他“相似”(比如年龄相差不大,地域相差不远,专业也相近等等)的人,然后推荐这个人没有接触到, 而与他相似的人喜欢的东西给他。

二、量化
    同样一些非数值的东西需要量化,比如是否喜欢篮球量化为0和1等等。
    经过量化后,就得到一个向量的集合,每一个向量代表一个人,或者一个物

三、怎么判断两个人(物)比较接近
     1、使用欧氏距离。比如是n维的向量,那么两个向量的距离就是n维空间中两个点的距离
          机器学习入门 <wbr>推荐系统

     2、使用皮尔逊相似度, 判断一组数据的线性相关性
      其实就是相似度 cov(x,y)/ (根号下D(X)*D(Y))
    机器学习入门 <wbr>推荐系统

     可以使用下面的公式逼近
                机器学习入门 <wbr>推荐系统

4、推荐过程
   比如向量为一个人对书的评价(book1,book2,book3)p代表person,代表一个人对三本书的评价矩阵
          book1   book2  book3
    p1 = (1,        3,      2)
    p2 = (5,        1,      2)
    p3 = (1,        3,      1)
   
欧几里得距离与相关系数 的出发点(或者说角度)是完全不同的。
1>使用欧几里得距离是从每一个人的角度出发。把p1,p2看做一个n维空间。

2>使用相关系数,从商品的角度出发,把商品看做是一个随机变量M,例如p1分数为M=x,p2的分数是M=y,每一个人的一个分数看做的M的抽样。
这样就可以得到n个在二位坐标轴上的点(x,y)
如果相关系数接近1,x,y的线性相关性好,可以近似表示为y = ax+b,

5、为人推荐人
    把待推荐人与每一个其他人的相似性算出来,取相似性最大的几个进行推荐
6、为人推荐物
      把待推荐人与每一个其他人的相似性算出来,取相似性最大的几个
   找出这些人看过,带推荐人没看过的东西。
   计算每一个带推荐物品的加权分数,取加权分数最大的推荐给他。
    例如 为andy推荐书

     person   andy与其他人相似度  book1分数  book2分数  book3分数
      p1             0.8                     5              3                1
      p2             0.6                     3              3                3
      p3             0.3                     5              2                4

例如book1的加权分数为 (0.8*5+0.6*3+0.3*5 )/(0.8+0.6+0.3)

同理计算book3,book2的加权分数。其实很好理解,相似度大的更有话语权,占的比例大。比如andy跟xiaolan相似度大他们打同样的分的几率就大,反之亦然。所以p1占的比重较大,p3占的比重小。

7、为物推荐物
   物与物的相似性跟人与人的相似性是一样的。只需要将 评价矩阵 做一个 转置变化
          book1   book2  book3
    p1 = (1,        3,      2)
    p2 = (5,        1,      2)
    p3 = (1,        3,      1)

得到
                    p1       p2      p3  (person)
      book1    =(1,         5,      1)
      book2    =(3,         1,      3)
      book3      = (2,        2,      1)
计算欧式距离或者相关系数
为什么这个相似性是合理和可行的呢?
   比如人与人的相似性,得来的根据是 两个人对同一个 书的集合的评价分数来决定的。而这个书的集合是固定的,每一个对这个集合中的每一本书都打分。集合固定,那么这个集合的“特性”就是固定的,这里的“特性”很抽象,打个比方随机在地球的一个地方找到100个人,例如在成都找了100个人,这100个人的集合就有他的特有的不变的特性------打麻将,喝茶,吃辣子鸡等等。一个固定的书的集合也是一样的,有它的特性,而且是不变的。这个不变的特性就是一个衡量人与人相似性的标准(变化的就不行了,就成了多重标准了)。
    反之,书与书的相似,是以一群固定的人的“特性”决定的。可以看把人对物打的分数,看做是这本书满足人的程度。
    哎,太绕了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值