svd_rec.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:machine-learning 作者: ocsponge 项目源码 文件源码
def svd_score(data_mat, user, item, sim_meas):
    n = shape(data_mat)[1]
    sim_total = 0.0
    rat_total = 0.0
    u, sigma, vt = la.svd(data_mat)
    sig_mat = mat(eye(4) * sigma[:4])
    data_trans = data_mat.T * u[:, :4] * sig_mat.I
    for j in range(n):
        user_rate = data_mat[user, j]
        if user_rate == 0 or j == item:
            continue
        sim = sim_meas(data_trans[item, :].T, data_trans[j, :].T)
        print('the %d and %d similarity is: %f' % (item, j, sim))
        sim_total += sim
        rat_total += sim * user_rate
    if sim_total == 0:
        return 0
    else:
        return rat_total / sim_total
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号