layout: post title: "推荐算法-协同过滤推荐算法" date: 2020-4-13 9:00:00 categories: [Algorithm] excerpt: "协同过滤推荐算法简介,参考https://zhuanlan.zhihu.com/p/40463528"
协同过滤推荐算法步骤
1.收集用户偏好
推测用户的喜好就要收集用户的信息,用户收藏的类别,评论,下载,转发这些信息可以数字化,作为用户信息二维矩阵的变量。
2.用户数据的减噪和归一化处理
操作对象是上面所述的二维矩阵,列为用户列表,行为物品列表,值是对物品的偏好值。
减噪:类似于数据预处理去重去掉无效值
归一化:将某类数据约束在一定范围内如某用户非常喜欢悬疑类的电影那么他在这类电影上的偏好值就接近于1,不喜欢恐怖类的电影就趋近于0。
3.计算相似度
基于向量Vector,计算向量之间的距离,距离越近相似度越大。
1>计算物品之间的相似度-->项目协同过滤
2>用户之间的相似度-->用户协同过滤
4.计算相似邻居
1>固定数量的邻居,不论邻居的远近,只取最近的k个
2>基于相似度门槛的邻居,以当前点为中心,距离k的区域中所有点都作为当前点的邻居。
KNN算法,样本在特征空间中的k个最相似(特征空间中最邻近)的样本大大多数属于某一个类别,则该样本也属于这个类别。
5.找到相似项目或用户
相似度的计算方法
欧几里得距离
一般公式:
相似度公式:
余弦相似度
对于m*n的相似矩阵,i,j的相似度sim(i,j)
皮尔逊相关系数