利用机器学习创建基于位置的推荐程序

推荐系统被广泛应用于不同的应用程序中,用于预测用户对产品或服务的偏好或评价。在过去的几分钟或几小时里,你很可能在网上遇到过或与某种类型的推荐系统进行过互动。这些推荐系统有不同的类型,其中最突出的包括基于内容的过滤和协作过滤。在本文中,我们将研究基于地理位置的推荐,我们特别关注地理位置,以便利用用户的地理位置提供更相关的推荐。

为了说明基于位置的推荐器的关键方面,我们将使用 K-Means 算法和来自 Kaggle 的 Yelp 数据集执行一个简单的基于位置的推荐。数据是 JSON 文件,可以用 pandas 轻松读取。

下表显示了数据集的前 5 行。表中提供了企业坐标、评级星级和每家企业的评论数量。

探索性数据分析(EDA)与预处理

在本节中,我们将探索并预处理数据集。该数据集包含来自 yelp 用户的评论,并包含许多类别。为了简化我们的分析和对推荐模型的解释,我们将把重点放在餐馆上,您也可以选择您感兴趣的其他类别。

我们首先通过过滤所有包含 "餐馆 "一词的业务来创建一个餐馆数据帧。然后,我们绘制出餐厅星级从 1 星到 5 星的分布图。从图中可以清楚地看出,大多数餐厅的星级为 4.0 或 3.5 星,只有少数餐厅的星级为 5.0 星。

我们还可以根据评论数和星级创建一个排序数据框架,并将数据集中排名前 20 位的餐厅可视化。

这里不仅要根据星级对餐厅进行排序,还要根据餐厅的评论数量进行排序。以下是数据集中所有排名前 20 的餐厅的分布图。

最后,在进入 K-Means 聚类和基于位置的推荐之前,让我们也探索一下这些餐厅的位置,并将其可视化为一张地图。我们将使用 Plotly Express 库,该库提供了一种灵活简便的方法,可以用漂亮的底图绘制地理数据。

为了定制我们的推荐系统,我们将只关注内华达州的拉斯维加斯,因为该数据集中的餐厅数量最多。

我们为拉斯维加斯的所有餐馆绘制了放大地图。下面是拉斯维加斯所有餐厅的地图。地图的颜色基于餐厅的星级数量,而大小则表示该餐厅的评论数量。如您所见,评价较高的餐厅都集中在市中心。

K-Means 聚类

在执行 K-Means 聚类算法之前,我们首先要确定数据集的最佳聚类数量。在这里,我们使用了一种名为 Elbow 方法的技术。

弯头法可以帮助我们确定合适的聚类数量。这并不能给出准确的聚类数量,但有可能帮助我们选择聚类的数量。从下图可以看出,它有多个弯头。

在肘法的帮助下,我们选择了 5 个聚类,并对坐标执行 K-Means 聚类算法。我们还在 lasVegas 数据帧中填充了一列新内容。

最后,我们绘制了 K-Means 算法的聚类散点图。该图清晰地显示了算法的输出结果,有 5 个聚类。

基于位置的推荐

在本节中,我们将把 K 均值聚类和餐厅评级结合起来,根据用户的位置推荐餐厅。首先,让我们创建一个数据帧,根据评论数和星级对拉斯维加斯的餐厅进行排序。我们将其称为 DataFrametop_restaurants_lasVegas。

我们准备创建一个根据用户位置推荐餐厅的函数。我们创建一个根据用户位置推荐餐厅的函数。

在这里,我们的函数将接收经纬度和数据帧。函数首先会预测坐标属于哪个集群,然后进一步将数据帧限制在该集群中,并返回该集群中排名前 5 的餐馆。

这个函数很简单,只接受坐标,但我们可以进一步开发,接受其他输入,如地址或邮编。这需要一些地理编码应用程序,所以现在只需说明基于位置的推荐功能就足够了。在使用推荐函数之前,让我们先创建一个测试数据帧。

现在,我们可以将数据帧中的任何用户作为输入,使用我们的推荐函数来测试我们基于位置的简单推荐的功能。请记住,这些测试数据只是为了方便,推荐函数可以直接接受任何给定的坐标。

对于第一个用户,K-Means 算法会预测聚类,并找出该聚类中排名前 5 的餐厅并进行推荐。红点为用户所在位置,蓝点为推荐餐厅。

让我们再举一个例子,本例中的用户 3。我们的 "recommend_restaurant "函数会再次预测该用户所属的群组,并从中选出该群组中排名前 5 的餐厅。

结论

在本教程中,我们使用 Yelp 数据集演示了基于位置的 python 推荐。我们使用餐馆来展示基于位置的推荐应用。我们的推荐系统使用基于餐厅坐标的 K-Means 聚类,并且只考虑餐厅的评级(评级数和星级)来推荐餐厅。我们还可以考虑餐厅的类型来定制推荐。这一点还可以进一步发展,纳入其他输入方法,如地址或邮政编码。最后,虽然 K-means 聚类限制了推荐餐厅的范围,但我们的推荐并没有明确考虑用户与推荐餐厅之间的距离。

相关推荐
数字游民952715 分钟前
小程序上新,猜对了么更新110组素材
人工智能·ai·小程序·ai绘画·自媒体·数字游民9527
泰迪智能科技28 分钟前
分享|联合编写教材入选第二批“十四五”职业教育国家规划教材名单
大数据·人工智能
模型时代38 分钟前
热力学计算技术或将大幅降低AI图像生成能耗
人工智能
企业老板ai培训39 分钟前
从九尾狐AI实战案例拆解AI短视频获客的架构设计:智能矩阵如何提升企业效率?
人工智能
龙腾AI白云1 小时前
知识图谱如何在制造业实际落地应用
人工智能·知识图谱
力学与人工智能1 小时前
“高雷诺数湍流数据库的构建及湍流机器学习集成研究”湍流重大研究计划集成项目顺利结题
数据库·人工智能·机器学习·高雷诺数·湍流·重大研究计划·项目结题
娟宝宝萌萌哒1 小时前
智能体设计模式重点
人工智能·设计模式
乾元1 小时前
绕过艺术:使用 GANs 对抗 Web 防火墙(WAF)
前端·网络·人工智能·深度学习·安全·架构
蝈蝈tju1 小时前
Vibe Coding 正确姿势: 先会指挥, 再让AI干
人工智能·经验分享·ai
想你依然心痛1 小时前
AI 换脸新纪元:Facefusion 人脸融合实战探索
人工智能·换脸·facefusion·人脸融合