0.理论
找出电影之间的相关度,相关度高的电影,认为它是相似电影。
相关度的衡量指标:
pearson相关系数:pearson相关系数衡量的是线性相关关系。若r=0,只能说x与y之间无线性相关关系,不能说无相关关系。相关系数的绝对值越大,相关性越强:相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。
spearman相关系数:它是衡量两个变量的依赖性的 非参数 指标。 它利用单调方程评价两个统计变量的相关性。 如果数据中没有重复值, 并且当两个变量完全单调相关时,斯皮尔曼相关系数则为+1或−1。
1.找出电影的相似度
import pandas as pd
r_cols = ['user_id', 'movie_id', 'rating']
ratings = pd.read_csv('E:/python/python数据科学与机器学习/《Python数据科学与机器学习:从入门到实践》源代码/ml-100k/u.data', sep='\t', names=r_cols, usecols=range(3), encoding="ISO-8859-1")
m_cols = ['movie_id', 'title']
movies = pd.read_csv('E:/python/python数据科学与机器学习/《Python数据科学与机器学习:从入门到实践》源代码/ml-100k/u.item', sep='|', names=m_cols, usecols=range(2), encoding="ISO-8859-1")
# 连接两张表
ratings = pd.merge(movies, ratings)
ratings.head()
movie_id | title | user_id | rating | |
---|---|---|---|---|
0 | 1 | Toy Story (1995) | 308 | 4 |
1 | 1 | Toy Story (1995) | 287 | 5 |
2 | 1 | Toy Story (1995) | 148 | 4 |
3 | 1 | Toy Story (1995) | 280 | 4 |
4 | 1 | Toy Story (1995) | 66 | 3 |