python实现svd++推荐算法

本文介绍了如何使用Python实现SVD++推荐算法,该算法在SVD基础上增加了用户和物品的个人喜好偏置项,以更好地捕捉用户行为。通过梯度下降优化,该模型能更准确地预测评分。

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

之前写过用python实现svd推荐算法,这次更进一步,在原来的基础上实现了svd++算法,基本框架和之前一篇是类似的.

SVD++算法的预测评分式子如下。

与SVD相比增加的是这部分:


它的含义是这样的:评分行为从侧面反映了用户的喜好,可以将这样的反映通过隐式参数形式体系在模型中,得到的就是上式的部分,其中Iu是用户u评论过的物品的集合,yj为隐藏的评价了物品j的个人喜好偏置,也通过梯度下降算法优化。这里的-1/2是个经验值。

详细代码如下:

import numpy as np
import random
'''
author:huang

svd++ algorithm


'''


class SVDPP:
    def __init__(self,mat,K=20):
        self.mat=np.array(mat)
        self.K=K
        self.bi={}
        self.bu={}
        self.qi={}
        self.pu={}
        self.avg=np.mean(self.mat[:,2])
        self.y={}
        self.u_dict={}
        for i in range(self.mat.shape[0]):
            
 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值