赞
踩
SVD算法python实现
之前看到一篇实现SVD算法的blog,但是实现方法没有用到矩阵。为了更直观简便高效的实现SVD算法,在这里基于numpy重新写了一遍。
原blog转载较多,已经找不到原作者了,参考以下地址:
http://blog.csdn.net/recsysml/article/details/12287513
这里用到的算法是优化下面这个目标函数:
代码如下:
参数: mat - 输入矩阵, feature - latent factor数量
- def svd(mat, feature, steps=500, gama=0.02, lamda=0.3):
- slowRate = 0.99
- preRmse = 1000000000.0
- nowRmse = 0.0
-
- user_feature = numpy.matrix(numpy.random.rand(mat.shape[0], feature))
- item_feature = numpy.matrix(numpy.random.rand(mat.shape[1], feature))
-
- for step in range(steps):
- rmse = 0.0
- n = 0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。