标题相似度算法_推荐算法入门(1)相似度计算方法大全

本文介绍了推荐系统中的协同过滤算法及其应用,并详细讲解了几种常见的相似度计算方法,包括欧式距离、余弦相似度、皮尔逊相关系数、修正余弦相似度和汉明距离。这些方法在理解和实现上进行了阐述,并通过示例展示了它们在数据上的应用和区别。
摘要由CSDN通过智能技术生成

一.协同过滤算法简介

在推荐系统的众多方法之中,基于用户的协同过滤是诞最早的,原理也比较简单。基于协同过滤的推荐算法被广泛的运用在推荐系统中,比如影视推荐、猜你喜欢等、邮件过滤等。该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤。一直到2000年,该算法都是推荐系统领域最著名的算法。

当用户A需要个性化推荐的时候,可以先找到和他兴趣详细的用户集群G,然后把G喜欢的并且A没有的物品推荐给A,这就是基于用户的协同过滤。

根据上述原理,我们可以将算法分为两个步骤:

1. 找到与目标兴趣相似的用户集群

2. 找到这个集合中用户喜欢的、并且目标用户没有听说过的物品推荐给目标用户。

二、常用的相似度计算方法

下面,简单的举例几个机器学习中常用的样本相似性度量方法:欧式距离(Euclidean Distance)

余弦相似度(Cosine)

皮尔逊相关系数(Pearson)

修正余弦相似度(Adjusted Cosine)

汉明距离(Hamming Distance)

曼哈顿距离(Manhattan Distance)

1、 欧式距离(Euclidean Distance)

欧式距离全称是欧几里距离,是最易于理解的一种距离计算方式,源自欧式空间中两点间的距离公式。平面空间内的

间的欧式距离:

2. 三维空间里的欧式距离:

3. Python 代码简单实现:

def EuclideanDistance(x,y):

d = 0

for a,b in zip(x,y):

d += (a-b)**2

return d**0.5

4. 使用 numpy 简化:

import numpy as np

def EuclideanDistance(dataA,dataB):

# np.linalg.norm 用于范数计算,默认是二范数,相当于平方和开根号

return 1.0/(1.0 + np.linalg.norm(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值