用户相似度的算法

本贴最后更新于 3431 天前,其中的信息可能已经渤澥桑田

最近在研究推荐系统的相关知识,了解到了几个相似度的算法。

欧式距离


import numpy as np

from numpy import linalg as la

def euclidSimilar(inA, inB):

    return 1.0/(1.0+la.norm(inA-inB))
    

皮尔逊相关系数

import numpy as np

from numpy import linalg as la

def pearsonSimilar(inA, inB):

    if len(inA) < 3:
    
        return 1.0
        
    return 0.5+0.5*np.corrcoef(inA,inB,rowvar=0)[0][1]
    

余弦相似度

import numpy as np

from numpy import linalg as la

def cosSimilar(inA, inB):

    inA=np.mat(inA)
    
    inB=np.mat(inB)
    
    num=float(inA*inB.T)
    
    denom=la.norm(inA)*la.norm(inB)
    
    return 0.5+0.5*(num/denom)
    
打赏 5 积分后可见
5 积分 • 1 打赏
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖 • 1 关注
  • 推荐系统
    4 引用 • 10 回帖
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    过段时间可能会用到一些算法,温故而知新 🚢