[ML]机器学习_协同过滤算法

本文围绕推荐系统展开,介绍了协同过滤算法,包括基于用户和基于物品的类型、优缺点及冷启动问题的解决方法。还阐述了二进制标签、均值归一化的定义与应用,给出协同过滤算法的代码实现,并说明了寻找相关特征的常见方法及示例,助力提升推荐准确度。

目录

一、推荐系统

1、提出建议

2、制定代价函数

二、协同过滤算法(Collaborative Filtering Algorithm)

1、定义

2、举例说明

3、冷启动问题

三、二进制标签

1、定义

2、举例说明

四、均值归一化

1、定义

2、举例说明

五、协同过滤算法的代码实现

六、寻找相关特征

1、常见方法

2、举例说明


一、推荐系统

1、提出建议

        在典型的推荐系统中,有一定数量的用户和一定数量的项目。在这种情况下,目的是给用户推荐可能感兴趣的项目。

        假设有一家大型电影流媒体网站,用户可以对电影进行评级。用n_{u}来表示用户数量,这里 n_{u}=4n_{m}表示为项目数,在例子中电影有5部所以n_{m}=5。如果用户j对电影i进行了评分,得到r(i,j)的值为1,没有进行评分则值为0。如用户Alice对电影1进行了评分,r(1,1)=1,但是对电影3没有进行评分,则r(3,1)=0,即为是否评分的标签。y^{(i,j)}则为用户j给电影i的评分,y^{(3,2)}=4即为2号用户Bob给3号电影的评分为4分。

        添加两个关于电影的特征x1和x2,引入n作为表示特征数量的值,x^{(i)}为第i个电影的特征向量。 

        则预测用户j对电影i的评分可以通过以下公式,

 这里的参数w^{(j)}b^{(j)}是用来预测用户 j 对电影 i 的评分的参数,x^{(i)}是电影 i 的特征。

2、制定代价函数

m^{(j)}用来表示用户 j 评价的电影数量。

        在给定的数据情况下学习参数 w^{(j)}b^{(j)},制定相关的代价函数。

在只关注用户j的情况下,使用均方误差,即预测值减去真实值,然后平方。选择参数w和b来最小化预测值与实际值之间的平方误差,求平方误差和时,仅对用户实际评分过的项目r(i,j)=1做求和计算, 最后可以对平方误差和除以2m^{(j)}进行归一化计算,末尾加上防止过拟合的正则化项,正则化项中的k=n中n是指电影的特征数量n。事实证明,对于推荐系统,实际消除m^{(j)}会方便,m^{(j)}只是该表达式中的一个常数,最终得到的值不会有影响。最小化这个代价函数会获得一组参数来预测用户 j 对其他电影的评分。

        对于所有用户学习参数时,将求出从j=1j=n_{u}的所有用户的代价函数总和,这成为所有用户学习的所有参数的代价函数。如果使用梯度下降或任何其他优化算法来最小化总的代价函数,就会得到一组参数来预测所有用户对电影的评价。

二、协同过滤算法(Collaborative Filtering Algorithm)

1、定义

        协同过滤算法是一种推荐算法,其目的是为用户推荐他们可能感兴趣的物品。该算法使用用户的历史行为和偏好来预测他们对尚未查看或评分的物品的偏好。

        协同过滤算法有两种类型:基于用户和基于物品。基于用户的协同过滤算法根据用户之间的相似度来推荐物品。它首先计算用户之间的相似度,并根据这些相似度为每个用户推荐适合他们的物品。基于物品的协同过滤算法是相反的,它根据物品之间的相似度来推荐物品。

协同过滤算法分为两种主要类型:基于用户的协同过滤和基于物品的协同过滤。

        1. 基于用户的协同过滤(User-based Collaborative Filtering):

        基于用户的协同过滤通过分析用户之间的相似性来进行推荐。算法的核心思想是如果两个用户在过去的行为上有相似之处,那么它们在未来行为上也可能有相似之处。具体步骤如下:

  • 计算用户之间的相似度:可以通过计算用户之间的欧几里德距离、余弦相似度、皮尔逊相关度等指标来衡量用户之间的相似程度。
  • 找到邻居用户:根据计算得到的相似度,选取与目标用户最相似的一组邻居用户。
  • 推荐物品:基于邻居用户的历史行为,预测目标用户对未知物品的喜好程度,并按照一定规则进行推荐。

        2. 基于物品的协同过滤(Item-based Collaborative Filtering):
&n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IAz-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值