推荐系统之小笔记

0,皮尔逊相关系数:(python 代码)

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import math

def pearson(vector1, vector2):
    n = len(vector1)
    #simple sums
    sum1 = sum(float(vector1[i]) for i in range(n))
    sum2 = sum(float(vector2[i]) for i in range(n))
    #sum up the squares
    sum1_pow = sum([pow(v, 2.0) for v in vector1])
    sum2_pow = sum([pow(v, 2.0) for v in vector2])
    #sum up the products
    p_sum = sum([vector1[i] * vector2[i] for i in range(n)])
    #分子num,分母den
    num = p_sum - (sum1*sum2/n)
    den = math.sqrt((sum1_pow - pow(sum1, 2)/n) * (sum2_pow - pow(sum2, 2) / n))
    if den == 0:
        return 0.0
    return num / den

if __name__ == '__main__':
    vector1 = (1, 0, 3, 0, 0, 5, 0, 0, 5, 0, 4, 0)
    vector2 = (0, 0, 5, 4, 0, 0, 4, 0, 0, 2, 1, 3)
    vector1 = [2, 7, 18, 88, 157, 90, 177, 570]
    vector2 = [3, 5, 15, 90, 180, 88, 160, 580]
    print pearson(vector1, vector2)
View Code

 https://blog.csdn.net/AlexMerer/article/details/74908435

1,基于用户的协同过滤(user-based collaborative filtering):

    找到最相似的用户A, B,把A用户喜欢的推荐给B用户。

2,基于物品的协同过滤(item-based collaborative filtering):

    找到最相似的物品item_1、item_2,A用户看了item_1, 就给他也推荐item_2。

3, UserCF, ItemCF: 

  

扫描二维码关注公众号,回复: 2442298 查看本文章

猜你喜欢

转载自www.cnblogs.com/yueyebigdata/p/9385092.html