首页 > 编程语言 >杰卡德相似度矩阵python

杰卡德相似度矩阵python

时间:2024-11-07 11:29:59浏览次数:4  
标签:卡德 similarity python self 矩阵 相似 data

使用Python计算杰卡德相似度矩阵

数据科学与机器学习的领域,相似度度量是一项重要的技术,广泛应用于推荐系统、聚类分析和信息检索等。杰卡德相似度(Jaccard Similarity)是用于评估两个集合相似性的一种方法,计算公式为两个集合交集的尺寸除以并集的尺寸。本文将介绍如何使用Python计算杰卡德相似度矩阵,并提供代码示例。

杰卡德相似度的定义

杰卡德相似度的计算公式如下:
[ J(A, B) = \frac{|A \cap B|}{|A \cup B|} ]
其中,( A ) 和 ( B ) 是两个集合,( |A \cap B| ) 是它们的交集大小,而 ( |A \cup B| ) 是它们的并集大小。

类图

为了更好地理解我们的实现结构,下面是我们将要创建的一个简单的类图。我们将定义一个 JaccardSimilarity 类,该类包含计算相似度矩阵的方法。

JaccardSimilarity+__init__(data: List[Set])+compute_similarity() : -> List[List[float]]

在这个类中,__init__ 方法用于初始化数据,compute_similarity 方法用于计算杰卡德相似度矩阵。

Python实现

接下来,我们将展示如何在Python中实现杰卡德相似度矩阵的计算。首先需要安装一些必要的库,如 NumPy。你可以使用以下命令安装:

pip install numpy
  • 1.
 

下面是代码示例:

  1.   import numpy as np
  2.   from typing import List, Set
  3.    
  4.   class JaccardSimilarity:
  5.   def __init__(self, data: List[Set]):
  6.   self.data = data
  7.    
  8.   def compute_similarity(self) -> List[List[float]]:
  9.   num_sets = len(self.data)
  10.   similarity_matrix = np.zeros((num_sets, num_sets))
  11.    
  12.   for i in range(num_sets):
  13.   for j in range(i + 1, num_sets):
  14.   intersection = len(self.data[i].intersection(self.data[j]))
  15.   union = len(self.data[i].union(self.data[j]))
  16.   similarity = intersection / union if union != 0 else 0
  17.   similarity_matrix[i][j] = similarity
  18.   similarity_matrix[j][i] = similarity # 对称性
  19.    
  20.   return similarity_matrix
  21.    
  22.   # 示例数据
  23.   data = [
  24.   {'apple', 'banana', 'orange'},
  25.   {'banana', 'berry'},
  26.   {'apple', 'berry'},
  27.   {'grape', 'apple'}
  28.   ]
  29.    
  30.   jaccard_sim = JaccardSimilarity(data)
  31.   similarity_matrix = jaccard_sim.compute_similarity()
  32.   print(similarity_matrix)
 
'

在这段代码中,我们定义了一个包含多个集合的列表,随后创建了 JaccardSimilarity 类并计算出相似度矩阵。最终的相似度矩阵将被打印出来。

序列图

通过下面的序列图,可以更好地理解我们的代码执行过程。

NumpyJaccardSimilarityUserNumpyJaccardSimilarityUserInstantiate with dataInitialize similarity_matrixCompute similarityUpdate similarity_matrixReturn similarity_matrix

在这个序列图中,用户首先实例化 JaccardSimilarity 类,然后计算相似度,最后返回计算得到的相似度矩阵。

结论

杰卡德相似度是一种简单而有效的相似度计算方法,适用于集合数据的比较。通过本文的示例代码,您可以轻松实现杰卡德相似度矩阵的计算。在实际应用中,可以根据需要调整数据结构和计算策略。希望本文对您理解杰卡德相似度和其在Python中的实现有所帮助!

   
原创作者: u_16213405 转载于: https://blog.51cto.com/u_16213405/11777035
<iframe height="240" style="display: none !important" width="320"></iframe><iframe style="display: none !important"></iframe>

标签:卡德,similarity,python,self,矩阵,相似,data
From: https://www.cnblogs.com/ExMan/p/18531848

相关文章

  • Python基础知识
    在用Python写代码的之前,对Python的基础知识是必须要会的,不然你可能会寸步难行。基础知识包括输入输出、变量、数据类型、表达式、运算符这5个方面。输入输出Python有很多函数,后面我们会细讲,但这里先将两个最基本的函数:输入和输出。输出函数print(),在前面我们已经用过了,语法......
  • 使用python编写一个获取token的接口
    importrequestsfromrequests.authimportHTTPBasicAuthdefget_token():"""获取token的逻辑"""url="https://devxxxxxxxxtion/v2/token"#替换为实际的token获取URLclient_id="hAixxxeMPNxxxxGjF......
  • python多进程万字详解!!!
    文章目录高效编程一、多任务原理二、进程1、概念2、使用进程3、全局变量在多个子进程中不能共享4、启动大量子进程5、map方法6、单进程与多进程复制文件对比7、进程间通信8、进程实现生产者消费者9、案例(抓取斗图)高效编程一、多任务原理概念现代操作系统比如Mac......
  • 淘宝商家电话采集工具 批量导出淘宝天猫商家联系方式软件 Python使用教程
    淘宝商家电话采集工具批量导出淘宝天猫商家联系方式软件Python使用教程作者V553813195以Python为例,下面是一个简单的教程,来介绍如何使用python语音进行淘宝天猫商家爬虫。首先,我们需要安装以下库:requests,beautifulsoup4。可以使用以下命令进行安装:pipinstallrequestspip......
  • 构建高效矩阵系统:技术与策略全解析(可OEM)
    矩阵系统是一种高度集成的平台,旨在跨多个维度和功能领域进行操作。它能够整合来自不同数据源、业务组件和用户接触点的信息,从而集中管理信息、自动化业务流程并智能化决策过程。在商业营销的背景下,该系统能够协调多种社交媒体账户、电子商务网站以及传统销售渠道,确保统一的营......
  • python主观题自动阅卷系统
    基于python的语音识别与蓝牙通信的温控系统毕设项目大家好,我是俊星学长,一名在Java圈辛勤劳作的码农。今日,要和大家分享的是一款基于python主观题自动阅卷系统毕设项目。项目源码以及部署相关事宜,请联系小村学长,文末会附上联系信息哦。......
  • Python 中删除文件的几种方法
    传统的文件删除方法在开始介绍最Pythonic的删除文件方式之前,先来回顾一下传统的文件删除方法。通常,我们使用os模块提供的os.remove()函数来删除文件。但是,使用该函数时需要先判断文件是否存在,然后再进行删除操作。 下面是一个示例代码片段来展示传统的文件删除方法:importo......
  • python 常见的内置函数
    __init__:构造器,当创建对象时自动调用。__new__:创建对象时调用,在__init__之前调用。__del__:析构器,当对象被垃圾收集时调用。__str__:返回对象的字符串表示,在str()函数中调用。__repr__:返回对象的官方字符串表示,用于repr()函数和交互式解释器。__bool__:......
  • 使用Python实现智能农业产量预测
    在现代农业中,精准化种植和高效管理是提高作物产量和质量的关键。通过深度学习技术,我们可以分析大量的农业数据,预测作物产量,从而优化种植策略,提升农业生产的效益和可持续性。本文将详细介绍如何使用Python构建一个智能农业产量预测的深度学习模型,并提供相关代码示例,帮助读者......
  • LeetCode题练习与总结:有序矩阵中第 K 小的元素--378
    一、题目描述给你一个 nxn 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。你必须找到一个内存复杂度优于 O(n^2) 的解决方案。示例1:输入:matrix=[[1,5,9],[10,11......