python协同过滤算法实现电影推荐

简介: 【1月更文挑战第3天】协同过滤是一种常用的推荐算法,它基于用户的历史行为和其他用户的行为进行推荐。在电影推荐中,协同过滤算法可以根据用户对电影的评分来推荐相似的电影给用户。

协同过滤是一种常用的推荐算法,它基于用户的历史行为和其他用户的行为进行推荐。在电影推荐中,协同过滤算法可以根据用户对电影的评分来推荐相似的电影给用户。

下面是一个简单的Python代码实现电影推荐的协同过滤算法:

import numpy as np

# 电影评分数据
ratings = {
   
    'Alice': {
   'Transformers': 3, 'Star Wars': 4, 'The Dark Knight': 5},
    'Bob': {
   'Transformers': 4, 'Star Wars': 3, 'The Dark Knight': 2},
    'Charlie': {
   'Transformers': 5, 'Star Wars': 2, 'The Dark Knight': 4},
    'Dave': {
   'Transformers': 2, 'Star Wars': 5, 'The Dark Knight': 3},
    'Eve': {
   'Transformers': 3, 'Star Wars': 4, 'The Dark Knight': 1}
}

# 计算用户之间的相似度
def similarity(user1, user2):
    movies1 = ratings[user1]
    movies2 = ratings[user2]

    # 计算共同评分的电影数量
    common_movies = set(movies1.keys()) & set(movies2.keys())

    # 如果没有共同评分的电影,返回0
    if len(common_movies) == 0:
        return 0

    # 计算用户之间的相似度
    sum_of_squares = sum([(movies1[movie] - movies2[movie])**2 for movie in common_movies])
    return 1 / (1 + np.sqrt(sum_of_squares))

# 根据用户的历史评分进行电影推荐
def recommend_movies(user):
    similarity_scores = [(other_user, similarity(user, other_user)) for other_user in ratings if other_user != user]

    # 按相似度降序排序
    similarity_scores.sort(key=lambda x: x[1], reverse=True)

    # 取相似度最高的用户
    most_similar_user = similarity_scores[0][0]

    # 获取相似用户的电影评分
    recommended_movies = {
   movie: rating for movie, rating in ratings[most_similar_user].items() if movie not in ratings[user]}

    return recommended_movies

# 测试代码
user = 'Alice'
recommendations = recommend_movies(user)
print(f"Recommended movies for {user}: {recommendations}")

运行以上代码,将会输出Alice用户的电影推荐结果。

注意:以上代码仅是一个简单的示例,实际应用中还需要考虑更多的因素,如用户的兴趣偏好、电影的类型等。

相关文章
|
12天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
|
12天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
12天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
|
12天前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
|
12天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
|
12天前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
|
12天前
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
机器学习/深度学习 算法 自动驾驶
117 0
|
20天前
|
算法 定位技术 调度
基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)
基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)
|
20天前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)

热门文章

最新文章

推荐镜像

更多