brics2025-st-034-2025一带一路暨金砖大赛之首届deepsee...

更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
在`recommender.py`文件中,协同过滤算法实现不完整,请补充:(代码块:`class CollaborativeFiltering:`\n `def __init__(self, rating_matrix: pd.DataFrame):`\n `self.rating_matrix = rating_matrix`\n `self.user_similarity = None`\n `self.item_similarity = None`\n\n `def fit(self):`\n `\"\"\"训练协同过滤模型\"\"\"`\n `# 计算用户相似度`\n `self.user_similarity = self.rating_matrix.T.corr()`\n \n `# 请补充:计算商品相似度的代码`\n `self.item_similarity = self.rating_matrix.corr()`\n \n `return self`\n\n `def predict_rating(self, user_id: int, item_id: int) -> float:`\n `\"\"\"预测用户对商品的评分\"\"\"`\n `if user_id not in self.rating_matrix.index or item_id not in self.rating_matrix.columns:`\n `return 0.0`\n \n `# 获取用户评分`\n `user_ratings = self.rating_matrix.loc[user_id]`\n \n `# 请补充:基于相似用户的评分预测代码`\n `similar_users = self.user_similarity[user_id].dropna().sort_values(ascending=False)[1:6]`\n \n `weighted_sum = 0`\n `similarity_sum = 0`\n \n `for similar_user, similarity in similar_users.items():`\n `if item_id in self.rating_matrix.columns and not pd.isna(self.rating_matrix.loc[similar_user, item_id]):`\n `weighted_sum += similarity * self.rating_matrix.loc[similar_user, item_id]`\n `similarity_sum += abs(similarity)`\n \n `if similarity_sum == 0:`\n `return 0.0`\n \n `return weighted_sum / similarity_sum`)请回答:这个算法基于什么原理?`similarity_sum`的作用是什么?
1 2