使用python编写一个根据用户喜好进行推荐系统猜你喜欢

使用python编写一个根据用户喜好进行推荐系统猜你喜欢

当一个网站或系统用户量大之后,都会有猜你喜欢货自动推,那么它如何为您推荐的呢?好了,阅读这篇文章后,您将能够知道专有技术。更好的是,您将能够自己构建推荐系统。

作为网络创建者,每个python开发人员都必须了解一些 事情,例如pandas和numpy库。本文中使用的初学者程序甚至无法与行业标准相提并论。因此,它仅用作系统介绍。我们假设读者具有Python的先前经验。

一、什么是推荐系统?

推荐系统是一种基本计算,旨在通过检测数据集中的相关性为客户提供最相关的信息。该算法评估元素,并向用户显示接近其偏好的高度项目。

淘宝和京东是此类推荐系统的最佳示例。每当您在淘宝上选择商品时,它就会自动开始向您显示您可能想要的其他商品。京东及其为您推荐电影的选项也是如此。

有三种构建推荐系统的方法:

1、基于人气的推荐人系统

2、基于内容的推荐人系统

3、基于相似度的推荐人系统

二、代码编写

在此基本推荐器系统中,我们使用的是movielens。这是一个基于相似度的推荐系统。如果愿意,可以使用PyCharm或Skit-Learn,了解 为什么pycharm对每个python程序员都变得重要。因此,进入第一步,导入numPy和pandas是我们的首要任务。

import pandas as pd 
import numpy as np
import warnings
warnings.filterwarnings('ignore')
随后,我们在数据集中使用pandas read_csv()实用程序。数据集与选项卡分开,因此 sep 参数在 t中传递 。然后,我们转到名称参数。
df = pd.read_csv('u.data', sep='\t', names=['user_id','item_id','rating','titmestamp'])
让我们搜索数据头以查看我们所关注的数据。
df.head()
如果我们能看到电影的标题而不是仅仅处理ID,那将很容易。加载电影标题并合并数据集;
movie_titles = pd.read_csv('Movie_Titles')
movie_titles.head()
由于item_id的列都是相同的,因此可以将这些数据集合并到此部分中。
df = pd.merge(df, movie_titles, on='item_id')
df.head()
让我们看一下每一列的表示形式:
user_id-为电影评分的用户的ID。
item_id-电影的ID。
rating-用户对电影的评分,介于1到5之间。
timestamp-电影的评级时间。
title-电影的标题。


我们可以使用description或info命令获得对数据集的简短描述。

df.describe()
我们可以说平均分数是3.52,最高分数是5。

让我们用每部电影的平均评分和评分编号构建一个数据框。稍后我们将使用这些评级来衡量电影之间的相关性。具有高相关系数的电影是彼此之间最具有可比性的电影。在我们的案例中,我们将使用皮尔森相关系数。该数字的范围是从-1到1。1显示正线性相关,而负相关由-1表示。0没有线性相关性,并且显示这些薄膜无论如何都不相似。

ratings = pd.DataFrame(df.groupby('title')['rating'].mean())
ratings.head()


现在,我们要查看每部电影的收视率数量。这是通过创建诸如number_of_ratings之类的列来完成的。看电影的平均评级与该电影获得的评级数量之间的关系很重要。只有...

点击查看剩余70%

{{collectdata}}

网友评论0