酒店智能推荐---智慧旅游

Python实现酒店智能推荐系统

目录

第1关:构建用户-酒店矩阵

代码

第2关:酒店智能推荐

代码


第1关:构建用户-酒店矩阵

任务描述
本关任务:编写Python代码,实现用户-酒店矩阵的构建。

相关知识
为了完成本关任务,你需要掌握:

1 认识数据;
2 什么是用户-酒店矩阵;
3 如何构建用户-酒店矩阵。

认识数据
本实训使用的数据是从携程网采集到的用户对香港境内酒店评分的数据(用户信息已经脱敏)。该数据已经保存成了一个类似于excel表格文件的形式,可以把数据看成是一个表格。这个表格有4列,分别为id,name,user_id,user_score。其中id表示酒店ID,name表示酒店名称,user_id表示用户ID,user_score表示用当前户对该酒店的评分。部分数据截图如下图所示:

这些数据很好解读,比如第一行的意思是用户ID为4的用户给酒店ID为354047的酒店打了89分。

值得注意的是,该数据中同一个用户可能给多个酒店打分。例如截图中第2行和最后一行中,用户ID为9的用户给两个不同的酒店打了分。

这些用户对酒店评分的数据其实就是用户对酒店的评分行为,我们可以根据评分行为向用户推荐一些他可能喜欢的酒店,所以这样的评分行为对于实现酒店推荐系统至关重要。

什么是用户-酒店矩阵
如果想要统计出每个用户对所有酒店的评分怎么办呢?我们可以构建用户-酒店矩阵。

用户-酒店矩阵通俗来说就是用来描述不同用户对不同酒店打分的一个表格,其中第i行表示的是第i个用户,第j列表示第j个酒店。矩阵(可以看成是表格)中的值为用户对酒店的评分。这样看起来可能有点抽象,不如举个例子:假设数据如下:

酒店ID    酒店名称    用户ID    用户评分
1    酒店1    2    91
4    酒店4    4    90
2    酒店2    1    92
3    酒店3    4    85
2    酒店2    2    95
4    酒店4    1    94
5    酒店5    3    89
那么可以将用户ID排成一列,酒店ID排成一行,然后将用户对酒店的评分填进去,就构建出了用户-酒店矩阵(其中0值代表该用户没有给该酒店评分过)。

比如第一行数据中可以看出用户ID为2的用户给酒店ID为1的酒店打了91分。那么用户-酒店矩阵中的第2行第1列的值为91。

用户ID\酒店ID    1    2    3    4    5
1    0    92    0    94    0
2    91    95    0    0    0
3    0    0    0    0    89
4    0    0    85    90    0
那么用户-酒店矩阵有什么作用呢?主要有两个:首先,我们很轻松的从这个矩阵中看出每个用户对每个酒店的评分。其次,我们可以使用基于矩阵分解的方式实现酒店智能推荐。酒店智能推荐将会在下一关详细介绍。

如何构建用户-酒店矩阵
想要构建用户-酒店矩阵主要分以下几个步骤:

1. 读取原始数据
2. 获取用户和酒店的数量
3. 构建用户-酒店矩阵

读取原始数据
原始数据位于./step1目录中,文件名为hotel_data.csv(csv文件可以看成是一种更加轻便简单的excel文件),我们可以使用Pandas读取。代码如下:

# 导入pandas库
import pandas as pd

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒_02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值