当前位置:   article > 正文

毕业设计:基于python汽车推荐系统 双协同过滤推荐算法 Django框架(源码)✅

毕业设计:基于python汽车推荐系统 双协同过滤推荐算法 Django框架(源码)✅

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌

毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕业设计选题汇总

1、项目介绍

技术栈:
Python语言、Django框架、双协同过滤推荐算法(基于用户推荐+基于物品推荐)、CSS+JS+HTML

2、项目界面

(1)基于用户协同过滤算法推荐

在这里插入图片描述

(2)基于物品协同过滤算法推荐
在这里插入图片描述
(3)汽车品牌数据分类

在这里插入图片描述

(4)汽车详情页面

在这里插入图片描述

(5)用户评分记录
在这里插入图片描述

(6)用户收藏记录

在这里插入图片描述

(7)热门车型推荐
在这里插入图片描述
(8)后台数据管理
在这里插入图片描述
(9)注册登录界面

在这里插入图片描述

3、项目说明

汽车推荐系统是一个基于Python语言、Django框架、双协同过滤推荐算法、CSS+JS+HTML技术栈的Web应用程序,它的主要功能是向用户推荐适合其需求的汽车。

下面是一个简单的汽车推荐系统的工作流程:

用户进入网站后,填写一份汽车需求问卷,包括品牌、价格、使用场景等信息。
根据用户的需求问卷,系统会通过基于用户的协同过滤算法和基于物品的协同过滤算法,分别推荐适合用户口味的汽车品牌和型号。
推荐结果将以列表或卡片形式展示在网页上,用户可以点击查看详情,了解更多汽车信息。
用户还可以保存自己感兴趣的汽车,在我的收藏夹中查看和管理。
除此之外,汽车推荐系统还可以提供车辆信息的搜索功能,用户可以通过关键词搜索到与汽车相关的品牌、型号和配置等信息。同时,系统还可以对用户的收藏行为进行分析,为用户提供更加个性化的推荐服务。

总之,汽车推荐系统的目标是帮助用户更轻松地找到适合自己的汽车,提高购车体验和效率。

4、核心代码


# 基于用户的协同过滤推荐算法实现模块
import operator
from apps.util.cfra.common.Constant import Constant
from apps.util.cfra.model.DataModel import DataModel
from apps.util.cfra.neighborhood.UserNeighborhood import UserNeighborhood
from apps.util.cfra.recommender.UserRecommender import UserRecommender
from apps.util.cfra.similarity.CosineSimilarity import CosineSimilarity
from apps.util.cfra.similarity.UserSimilarity import UserSimilarity


class UserCF(object):

    def __init__(self):
        pass

    # 推荐方法
    def recommend(self, dataModel, cUserid):
        print("基于用户的协同过滤推荐算法开始")
        # 获取用户id列表
        userIDsList = dataModel.userIDsList

        if len(userIDsList) == 0:
            print("\n暂无评分数据!")
            print("\n基于用户的协同过滤推荐算法结束")
            return None

        # 升序排列
        userIDsList = sorted(userIDsList, reverse=False)
        print("用户数量:%d" % len(userIDsList))
        # 输出用户id列表
        dataModel.printUserIds(userIDsList)

        # 获取项目id列表
        itemIDsList = dataModel.itemIDsList
        # 降序排列
        itemIDsList = sorted(itemIDsList, reverse=False)
        print("\n项目数量:%d" % len(itemIDsList))
        # 输出项目id列表
        dataModel.printItemIds(itemIDsList)

        # 打印用户项目喜好矩阵
        dataModel.printUserItemPrefMatrix(userIDsList,dataModel.userItemPrefMatrixDic)

        # 判断当前用户是否有评分数据
        if cUserid not in dataModel.userItemPrefMatrixDic.keys():
            print("\n当前用户 %s 暂无评分数据!" % cUserid)
            print("\n基于用户的协同过滤推荐算法结束")
            return None

        # 实例化余弦相似度算法
        cosineSimilarity = CosineSimilarity()

        # 实例化用户相似度
        userSimilarity = UserSimilarity()

        # 计算目标用户与其他用户的相似度
        userSimilarityDic = userSimilarity.getUserSimilaritys(cUserid, cosineSimilarity, dataModel)
        # 先根据用户id升序
        userSimilarityDicTemp = sorted(userSimilarityDic.items(), key=operator.itemgetter(0), reverse=False)
        print("\n用户:%-5s与其他用户的相似度为:" % cUserid)
        # 输出目标用户的相似度
        userSimilarity.printUserSimilaritys(userSimilarityDicTemp)

        # 实例化用户邻居对象
        userNeighborhood = UserNeighborhood()
        # 获取目标用户的最近邻居
        kNUserNeighborhood = userNeighborhood.getKUserNeighborhoods(userSimilarityDic)
        print("\n用户:%-5s的前%d个最近邻居为:" % (cUserid, Constant.knn))
        # 输出目标用户的最近邻居
        userNeighborhood.printKUserNeighborhoods(kNUserNeighborhood)

        # 实例化用户推荐对象
        userRecommender = UserRecommender()
        # 推荐
        recommenderItemFinalDic = userRecommender.getUserRecommender(cUserid, dict(kNUserNeighborhood), dataModel)
        print("\n用户:%-5s的前%d个推荐项目为:" % (cUserid, Constant.cfCount))

        recommenderItemFinalDic = sorted(recommenderItemFinalDic.items(), key=operator.itemgetter(1), reverse=True)
        recommenderItemFinalDic = recommenderItemFinalDic[0:Constant.cfCount]
        # 打印预测评分
        userRecommender.printPref(recommenderItemFinalDic)

        print("\n基于用户的协同过滤推荐算法结束")
        return recommenderItemFinalDic

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/196654
推荐阅读
相关标签