机器学习-10-矩阵分解

本文介绍了一种使用Java实现的矩阵分解方法,用于推荐系统。通过梯度下降优化用户和电影向量,以预测评分并降低误差。在训练过程中,对用户和电影的低维表示进行更新,最终达到预测效果。经过2000次迭代,MAE为0.5190206081496164,RMSE为0.6844411201166227。

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

学习来源:日撸 Java 三百行(61-70天,决策树与集成学习)_闵帆的博客-优快云博客

梯度下降

如同所示,梯度下降就是沿着下降最快的方向移动一定距离,距离为梯度乘以学习率。直到下降到最底部。

该代码中的梯度:

对于用户向量\overrightarrow{p_i}和电影向量\overrightarrow{q_j}的偏导:

\frac{\partial}{\partial \overrightarrow{p_i}}\triangle r^{2} = 2(r_{i,j}-\overrightarrow{p_i}\overrightarrow{q_j}) \overrightarrow{q_j} = 2 \triangle r\overrightarrow{q_j}

\frac{\partial}{\partial \overrightarrow{q_j}}\triangle r^{2} = 2(r_{i,j}-\overrightarrow{p_i}\overrightarrow{q_j}) \overrightarrow{p_i} = 2 \triangle r\overrightarrow{p_i}

其中,\triangle r表示真实评分和预测评分的差值。

矩阵分解

1.数据:“用户ID 电影ID 评分(1-5)”。电影看得多的用户排在前面。

2.思想:可以将用户-电影的评分矩阵R,转化为两个包含隐含因子的低维矩阵。一个是用户低维矩阵U,一个是电影低维矩阵V。并且使R \approx UV

其中:r_{ij}表示用户i对电影j的评分。假设低维为3维,所以u_{ip}表示用户i对第

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值