图书推荐系统参考git开源项目(运行过程、项目介绍、相关问题)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 图书推荐系统参考git开源项目(运行过程、项目介绍、相关问题)

运行过程


项目启动方式:

数据集下载地址[http://www2.informatik.uni-freiburg.de/~cziegler/BX/]

将下载好的数据放入data文件夹下

运行read_data_save_to_mysql.py文件 将数据导入到mysql中。(27万数据还是挺快的 咔咔)


注意mysql的链接参数.默认是root,密码123456,端口是3300.如果你的不是, 需要修改read_data_save_to_mysql和web/config.yml文件下的mysql的配置参数。

8cad9110de0548479e2fade13328d4b8.png

 //查看端口号代码如下 我的是3306
mysql -u root -o
密码是123456
show global variables like ‘port‘;
pip install pymysql //我的报错了,没安装

进入web文件夹,运行app.py

2302a47d037946e99a222835ab332699.png

我的报错 修改了代码

f804c57e78e2423fa67113087424c500.png

if __name__ == '__main__':
#    app.run(debug=True, port=8080)
    from gevent import pywsgi
    server = pywsgi.WSGIServer(('127.0.0.1',8000),app)
    server.serve_forever()

在浏览器上访问 127.0.0.1:8000 与上面设置的同步就行


使用下载数据中的UserID和其对应的Location作为账号密码登录网站。(这里我新建了一个 看一下新用户冷启动啥的问题 是没有推荐)


系统管理员的账号:admin 密码:admin 通过这个账号密码进入后台管理(管理书籍 没有删除用户的功能)


项目介绍


该项目:

看到首页,登录之前没有推荐数据。我们有两种登录方式。

①数据集用户登录,用户的userid和location作为用户名和密码,此时的推荐书籍模块是基于协同过滤模型生成的离线推荐。我们可以看到有推荐分数。


eg:

用户:167166 密码:weyhe bei bremen, bremen, germany

用户:20 密码:langhorne, pennsylvania, usa

用户:173453 密码:mountain view, california, usa(采用这个)


②对于新注册用户,在猜你喜欢和书籍推荐模块没有推荐数据,属于冷启动问题,在产生用户行为后,猜你喜欢将进行实时推荐。

我们可以点击浏览书籍,可以发现猜你喜欢模块进行了书籍推荐,然后对于书籍进行一个评分,可以发现猜你喜欢模块有更新书籍,然后我们通过搜索Harry pottery系列,进行评分,再次回到猜你喜欢可以看到产生一个明显的系列推荐。


相关问题


一些相关问题:

1.为什么用slope one算法而没用其他推荐算法

基于评分的Slope One算法具有简单、易懂、易于维护和执行、及时更新性等特点。与其他的个性化推荐算法相比,该算法不计算项目之间的相似度, 而是用一种简单的线性回归模型进行预测(可以扩展)。


2.实时推荐实时性如何

较快,里面用到了sql查询语句,直接在数据库进行查询返回,呈现在界面上。


3.冷启动解决

冷启动问题的出现是数据集的用户信息不够,如果上线后,引入多维度的信息,可以解决用户的冷启动问题。或者系统在用户第一次登录时,引导用户输入一些冷启动特征。对于图书领域的特征收集,可以选择历史、悬疑、文言等风格。


4.归一化作用

将评分数据控制在0-1范围,为了后期训练模型梯度下降更快,同时消除量纲的作用。


5.协同过滤算法

包括基于用户和基于物品的两种推荐算法。


6.新用户的推荐逻辑?

首先,根据用户在网页上产生的用户行为,包括点击浏览与评分,分别赋予不同的权重对数据集进行一个更新。其次,根据数据集中新用户评分高的书筛选出相似度高的书籍并排序。最后将top_N通过sql语句进行一个实时查询呈现在猜你喜欢模块上。


7.数据集的选取和处理?

先尝试了厦门图书馆数据集,经过数据分析后发现该数据集存在数据缺失问题,并且受众与书籍类型有局限性,决定更换数据集。选用book-crossing数据集后做的数据处理包括:异常值处理、空值填充、可视化分析。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
机器学习/深度学习 数据采集 搜索推荐
Python基于深度学习算法实现图书推荐系统项目实战
Python基于深度学习算法实现图书推荐系统项目实战
284 3
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
1月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
33 0
|
3月前
|
架构师 开发工具 git
项目去除git版本控制 去除版本控制
文章提供了去除本地项目Git版本控制的步骤,包括删除`.git`文件夹和`.idea`目录下的`vcs.xml`文件。
项目去除git版本控制 去除版本控制
|
3月前
|
jenkins 测试技术 开发工具
协同开发的艺术:Git 在团队项目中的高效应用
【8月更文第16天】在现代软件开发中,团队成员之间的高效协作是至关重要的。Git 作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码的变化和协作。本文将介绍如何利用 Git 来优化团队的工作流程,并提供实际操作的代码示例。
111 1
|
3月前
|
网络安全 开发工具 数据安全/隐私保护
Win10使用Git克隆项目出现fatal: Authentication failed for异常
Windows 10系统中使用Git克隆项目时出现"fatal: Authentication failed for"异常的解决方法,主要是通过修改凭据管理器中的Git凭据密码来解决因密码过期导致的身份验证失败问题。
69 0
Win10使用Git克隆项目出现fatal: Authentication failed for异常
|
3月前
|
安全 开发工具 git
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
这篇文章是关于如何在IDEA中配置Git、在Coding.net上创建项目和代码仓库,并将IDEA中的代码提交到远程代码仓库的详细教程,涵盖了Git安装、IDEA配置、项目创建、代码提交等步骤。
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
|
3月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
4月前
|
开发工具 git
使用Git拉取项目
使用Git拉取项目
|
5月前
|
机器学习/深度学习 搜索推荐 算法
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
登录注册 热门图书 图书分类 图书推荐 借阅图书 购物图书 个人中心 可视化大屏 后台管理
13135 2
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
下一篇
无影云桌面