目录
1.2. 皮尔逊相关系数(Pearson correlation coefficient)
学习完机器学习实战的推荐系统,简单的做个笔记。文中部分描述属于个人消化后的理解,仅供参考。
所有代码和数据可以访问 我的 github
如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~
0. 前言
在推荐算法中,数据通常由一个矩阵构成,每一行(列)代表用户,每一列(行)代表物品,每一个元素代表用户对物品的评分。
推荐系统的基本思想是,预测用户对物品的评分,若评分高,则推荐给该用户。
本篇主要简单介绍四种推荐系统:
- 基于内容(物品)的推荐算法
- 基于用户的推荐算法
- 基于内容(物品)的协同过滤推荐算法
- 基于用户的协同过滤推荐算法
注:基于内容的算法复杂度会随着内容的增加而增加,基于用户的算法复杂度会随着用户的增加而增加。
1. 相似度
1.1. 欧式距离(Euclidean metric)
欧式距离是两个向量之间的距离,定义如下:
距离越短,说明相似程度越高,因此可通过如下定义,将其转换到 范围内,越接近 ,说明相似度越高:
1.2. 皮尔逊相关系数(Pearson correlation coefficient)
皮尔逊相关系数是两个向量的协方差和标准差的商:
皮尔逊相关系数的取值范围是 ,通过以下定义,将其转换至 范围:
1.3. 余弦相似度(Cosine similarity)
余弦相似度是计算两个向量的夹角余弦值,如果向量正交,则相似度为 :
余弦相似度的取值范围也是 ,通过以下定义,将其转换至 范围:
2. 基于内容(物品)的推荐算法
基于内容的推荐算法要求已知物品的特征属性值,通过计算两个物品属性的相似程度,进行推荐。
根本道理就是,如果这两个物品相似,你喜欢这个物品,就预测你也喜欢另一个。
例如在下述例子中,已知电影的特征属性浪漫程度和动作程度,右侧是用户的评分:
电影浪漫程度x_1 | 电影动作程度x_2 | 用户A |
---|