基于矩阵分解的电影推荐系统:Funk SVD 实现与优化
1. 引言
在电影推荐系统中,矩阵分解是一种强大的技术,能够挖掘出隐藏的电影类型和用户偏好。Funk SVD 是矩阵分解的一种有效实现方式,下面将详细介绍其在 MovieGEEKs 中的实现、优化以及评估过程。
2. Funk SVD 在 MovieGEEKs 中的实现
2.1 训练阶段
训练阶段主要完成初始化偏差和因子,并获取评分数据。代码如下:
def initialize_factors(self, ratings, k=25):
self.user_ids = set(ratings['user_id'].values)
self.movie_ids = set(ratings['movie_id'].values)
self.u_inx = {r: i for i, r in enumerate(self.user_ids)}
self.i_inx = {r: i for i, r in enumerate(self.movie_ids)}
self.item_factors = np.full((len(self.i_inx), k), 0.1)
self.user_factors = np.full((len(self.u_inx), k), 0.1)
self.all_movies_mean = self.calculate_all_movies_mean(ratings)
self.user_bias = defaultdict(la
Funk SVD电影推荐系统实现与优化
超级会员免费看
订阅专栏 解锁全文
550

被折叠的 条评论
为什么被折叠?



