相似度计算之(四)——jaccard相似系数

本文探讨了Jaccard相似系数及其在文本查重、数据聚类等场景的应用。介绍了Jaccard系数与Jaccard距离的概念,以及它们在衡量样本相似度上的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要应用场景:
比较文本的相似度,用于文本的查重与去重
计算对象间的距离,用于数据聚类

jaccard相似系数公式:
在这里插入图片描述
jaccard距离公式:
在这里插入图片描述
Jaccard系数取值范围[0,1]

当A==B时,Jaccard系数为1
当A与B不想交时,Jaccard系数为0

Jaccard距离是Jaccard系数相关的指标,Jaccard距离表示样本或集合的不相似程度,Jaccard距离越大,样本相似度越低

### 工业大数据中相似度计算的方法 #### 一、传统协同过滤中的相似度计算 在传统的协同过滤算法里,无论是基于用户的还是基于物品的推荐系统,核心挑战之一在于如何高效地计算两个实体间的相似度。对于用户而言,这种相似性的评估通常依赖于两者对共同交互过的项目评分情况;而对于商品,则依据被相同群体评价的情况来进行衡量。常用的相似度量包括但不限于欧氏距离、余弦相似性和Jaccard系数等。 当面对的数据集规模较小的时候,可以直接采用朴素的方式逐一对比每一对对象并求解其间的关联程度[^1]。然而,一旦涉及到高维空间下的大规模数据处理场景时,上述方法就会遇到性能瓶颈——不仅因为两两比较所需的时间成本随特征数目的增多而成正比上升,而且整个过程涉及的操作次数也会随着样本总量按平方级别激增。 ```python import numpy as np from sklearn.metrics.pairwise import cosine_similarity def compute_cosine_similarity(matrix): """ 计算矩阵内各条目间余弦相似度 参数: matrix (numpy.ndarray): 用户-物品打分表或任意其他形式的对象属性表示矩阵 返回: sim_matrix (numpy.ndarray): 对象之间的余弦相似度矩阵 """ # 使用sklearn库函数简化操作流程 sim_matrix = cosine_similarity(matrix) return sim_matrix ``` #### 二、针对工业级应用优化后的解决方案 为了应对海量数据带来的效率低下问题,在实际工程实践中往往会引入一些改进措施: - **降维技术**:利用诸如PCA(主成分分析)、SVD(奇异值分解)之类的线性代数工具减少原始特征的数量,从而降低后续运算负担; - **局部敏感哈希(LSH)**:这是一种专门设计用来加速近似最近邻查询的技术,它能够在保持一定精度的前提下极大缩短查找时间; - **分布式架构支持**:借助MapReduce框架或者其他流式处理平台如Spark Streaming来分配任务给多个节点并发执行,以此提高整体吞吐能力。 这些手段可以有效缓解由于数据膨胀所引发的各种难题,并使得即使是在非常庞大的工业环境中也能顺利完成高质量的商品匹配工作[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值