我正在实现矩阵分解来预测评论者对电影的评分。数据集取自MovieLen (http://grouplens.org/datasets/movielens/)。这是一个经过充分研究的推荐问题,因此我只是为了学习目的实现了这种矩阵分解方法。
我将成本函数建模为训练数据集中预测评分和实际评分之间的均方根误差。我使用scipy.optimize.minimize函数(我使用共轭梯度下降)来分解电影评分矩阵,但即使是只有100K项的数据集,这种优化工具也太慢了。我计划将我的算法扩展到包含2000万项的数据集。
我一直在寻找基于Python的随机梯度下降解决方案,但我在scikit-learn中找到的随机梯度下降不允许我使用自定义的成本和梯度函数。
我可以自己实现随机梯度下降,但我正在向大家确认是否已经存在这样的工具。
基本上,我想知道是否有类似于以下API的工具:
我将成本函数建模为训练数据集中预测评分和实际评分之间的均方根误差。我使用scipy.optimize.minimize函数(我使用共轭梯度下降)来分解电影评分矩阵,但即使是只有100K项的数据集,这种优化工具也太慢了。我计划将我的算法扩展到包含2000万项的数据集。
我一直在寻找基于Python的随机梯度下降解决方案,但我在scikit-learn中找到的随机梯度下降不允许我使用自定义的成本和梯度函数。
我可以自己实现随机梯度下降,但我正在向大家确认是否已经存在这样的工具。
基本上,我想知道是否有类似于以下API的工具:
optimize.minimize(my_cost_function,
my_input_param,
jac=my_gradient_function,
...)
感谢!Un