没有合适的资源?快使用搜索试试~ 我知道了~
首页不到40行代码用Python实现一个简单的推荐系统
不到40行代码用Python实现一个简单的推荐系统

主要给大家介绍了如何利用不到40行python代码实现一个简单的推荐系统,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
资源详情
资源评论
资源推荐

不到不到40行代码用行代码用Python实现一个简单的推荐系统实现一个简单的推荐系统
主要给大家介绍了如何利用不到40行python代码实现一个简单的推荐系统,文中通过示例代码介绍的非常详
细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
什么是推荐系统什么是推荐系统
维基百科这样解释道:推荐系统属于资讯过滤的一种应用。推荐系统能够将可能受喜好的资讯或实物(例如:电影、电视节
目、音乐、书籍、新闻、图片、网页)推荐给使用者。
本质上是根据用户的一些行为数据有针对性的推荐用户更可能感兴趣的内容。比如在网易云音乐听歌,听得越多,它就会推荐
越多符合你喜好的音乐。
推荐系统是如何工作的呢?有一种思路如下:推荐系统是如何工作的呢?有一种思路如下:
用户 A 听了 收藏了 a,b,c 三首歌。用户 B 收藏了 a, b 两首歌,这时候推荐系统就把 c 推荐给用户 B。因为算法判断用户
A,B 对音乐的品味有极大可能一致。
推荐算法分类推荐算法分类
最常见的推荐算法分为基于内容推荐以及协同过滤。协同过滤又可以分为基于用户的协同过滤和基于物品的协同过滤
基于内容推荐是直接判断所推荐内容本身的相关性,比如文章推荐,算法判断某篇文章和用户历史阅读文章的相关性进行推
荐。
基于用户的协同过滤就是文章开头举的例子。
基于物品的协同过滤:
假设用户 A,B,C 都收藏了音乐 a,b。然后用户 D 收藏了音乐 a,那么这时候就推荐音乐 b 给他。
动手打造自己的推荐系统动手打造自己的推荐系统
这一次我们要做的是一个简单的电影推荐,虽然离工业应用还差十万八千里,但是非常适合新手一窥推荐系统的内部原理。数
据集包含两个文件:ratings.csv 和 movies.csv。
# 载入数据
import pandas as pd
import numpy as np
df = pd.read_csv('data/ratings.csv')
df.head()
ratings.csv 包含四个维度的数据:
userId:打分用户的 ID
movieId: 被打分电影的 ID
rating: 用户给电影的打分,处于[1,5]
timestamp: 电影被打分的时间
要推荐电影还需要有电影的名字,电影名字保存在 movies.csv 中:
movies = pd.read_csv('data/movies.csv')
movies.head()
将 ratings.csv 和 movies.csv 的数据根据 movieId 合并。
df = pd.merge(df, movie_title, on='movieId')
df.head()
我们这次要做的推荐系统的核心思路是:
根据所有用户评分判断所有电影与用户 a 已观看的某部电影 A 的相似度
给用户 a 推荐相似度高且评分高的电影
所以我们要先有所有用户对所有电影的评分的列联表:
movie_matrix = df.pivot_table(index = 'userId', columns = 'title' ,values = 'rating')
movie_matrix.head()
假设用户 A 观看的电影是 air_force_one (1997),则计算列联表中所有电影与 air_force_one (1997) 的相关性。
AFO_user_rating = movie_matrix['Air Force One (1997)']
simliar_to_air_force_one = movie_matrix.corrwith(AFO_user_rating)

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1