推荐算法_隐语义-梯度下降

import numpy as np

1.模型实现

"""
input
rate_matrix: M行N列 的评分矩阵,值为P*Q.
             P: 初始化用户特征矩阵M*K.
             Q: 初始化物品特征矩阵K*N.
latent_feature_cnt: 隐特征的向量个数
max_iteration:最大迭代次数
alpha:步长
lamda:正则化系数

output
分解之后的P和Q
"""
def LFM_grad_desc(rate_matrix, latent_feature_cnt = 5, max_iteration=3000, alpha=0.0002, lamda=0.004):
    row_count = len(rate_matrix)
    collumn_count = len(rate_matrix[0])
    
    P = np.random.rand(row_count, latent_feature_cnt)
    Q = np.random.rand(collumn_count, latent_feature_cnt)
    Q_T = Q.T
    
    for step in range(max_iteration):
        for i in range(row_count):
            for j 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值