python快速两两元素求相似矩阵

目录

  • 1. 计算相似度矩阵
  • 2. 基于sklearn

1. 计算相似度矩阵

计算相似度矩阵的方法有很多种,发现了sklearn中直接有通过计算余弦相似度得到相似度矩阵的方法
1 sklearn.metrics.pairwise.cosine_similarity # 余弦相似度
2 sklearn.metrics.pairwise.pairwise_distances #余弦距离

>>> from sklearn.metrics.pairwise import cosine_similarity
>>> from sklearn.metrics.pairwise import pairwise_distances>>> a=[[1,3],[2,2]]
>>> cosine_similarity(a)
array([[ 1.        ,  0.89442719],[ 0.89442719,  1.        ]])>>> pairwise_distances(a,metric="cosine")
array([[ 0.        ,  0.10557281],[ 0.10557281,  0.        ]])

pairwise_distances方法是 cosine_similarity减1后取绝对值得到的。

2. 基于sklearn

import numpy as np
from sklearn.metrics.pairwise import cosine_similaritya1=np.arange(15).reshape(3, 5)
a2=np.arange(20).reshape(4, 5)print(cosine_similarity(a1, a2))  # 第一行的值是a1中的第一个行向量与a2中所有的行向量之间的余弦相似度print(cosine_similarity(a1))  # a1中的行向量之间的两两余弦相似度

a1 和 a2 介绍,a1 包含 3 个元素,a2 包含 4 个元素,

a1
array([[ 0,  1,  2,  3,  4],[ 5,  6,  7,  8,  9],[10, 11, 12, 13, 14]])
a2
array([[ 0,  1,  2,  3,  4],[ 5,  6,  7,  8,  9],[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]])
cosine_similarity(a1)  # 3 × 3
Out[3]: 
array([[1.        , 0.91465912, 0.87845859],[0.91465912, 1.        , 0.99663684],[0.87845859, 0.99663684, 1.        ]])
cosine_similarity(a1, a2)  # 3 × 4
Out[2]: 
array([[1.        , 0.91465912, 0.87845859, 0.86154979],[0.91465912, 1.        , 0.99663684, 0.99323905],[0.87845859, 0.99663684, 1.        , 0.9994114 ]])

cosine_similarity(a1) 将是 a1 的 3 个元素相互计算余弦相似度,而 cosine_similarity(a1,a2) 则是 a1 的 3 个元素和 a2 的 4 个元素相互进行余弦相似度计算。
在这里插入图片描述

[1] 在 numpy 中,对数组或矩阵中的每个元素,进行函数计算 2019.12;
[2] python计算相似矩阵 2018.6;
[3] python向量之间相似性的计算方法(持续更新中)2019.1;
[4] Python 使用sklearn计算余弦相似度 2020.9;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/68259.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】PyTorch快速入门

【深度学习】学习PyTorch基础 介绍PyTorch 深度学习框架是一种软件工具,旨在简化和加速构建、训练和部署深度学习模型的过程。深度学习框架提供了一系列的函数、类和工具,用于定义、优化和执行各种深度神经网络模型。这些框架帮助研究人员和开发人员专注…

英伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP](2)——代码分析

伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP](2)——代码分析 ASP整个模块的结果如下: . ├── COPYRIGHT ├── README.md ├── __init__.py ├── asp.py ├── permutation_lib.py ├── permutation_search_kernels…

多线程并发服务器

代码&#xff1a; #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> #define PORT 6666 //1024~49151 #define IP "192.168.122.130" //ifconfig查看本机IP #include <pthread.h> //…

安装使用IDEA,修改样式,配置服务,构建Maven项目(超级详细版)

目录 前言&#xff1a; 一&#xff0c;安装 1.1打开官网JetBrains: Essential tools for software developers and teams点击 Developer Tools&#xff0c;再点击 Intellij IDEA 2.点击下载​编辑 3.选择对应的版本&#xff0c;左边的 Ultimate 版本为旗舰版&#xff0c;需要…

Gin安装解决国内go 与 热加载

get 方式安装超时问题&#xff0c;国内直接用官网推荐的下面这个命令大概率是安装不成功的 go get -u github.com/gin-gonic/gin 可以在你的项目目录下执行下面几个命令&#xff1a; 比如我的项目在E:\Oproject\zl cmd E:\Oproject\zl>就在目录下执行 go env -w GO111…

MySQL8安装和删除教程 下载源码 保姆级(Windows)

删除 停止Mysql服务 管理员的权限来运行cmd&#xff0c;输入 net stop MySQL80 注意你电脑上的MySQL服务不一定是MySQL80,MySQL80是默认的&#xff0c;不是怎么办?在services.msc中找即可 下载一个小工具 geek:Geek下载打开软件&#xff0c;在列表中找到图片中的两项 sc…

代码随想录算法训练营第三十五天 | 860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球

代码随想录算法训练营第三十五天 | 860.柠檬水找零&#xff0c;406.根据身高重建队列&#xff0c;452. 用最少数量的箭引爆气球 860.柠檬水找零:eyes:题目总结:eyes: 406.根据身高重建队列:eyes:题目总结:eyes: 452. 用最少数量的箭引爆气球:eyes:题目总结:eyes: 860.柠檬水找零…

【Vue-Router】嵌套路由

footer.vue <template><div><router-view></router-view><hr><h1>我是父路由</h1><div><router-link to"/user">Login</router-link><router-link to"/user/reg" style"margin-left…

JS导出复杂多级表头的Excel

使用方式 1、安装依赖 npm install xlsx-js-style2、复制代码文件exportExcel.js至工程 https://github.com/EnthuDai/export-excel-in-one-line 3、在引入excel.js后调用 Excel.export(columns, dataSource, 导出文件名)4、代码demo 5、效果 页面excel 适用范围 对于使…

企业权限管理(七)-权限操作

1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT )…

Python实战之使用Python进行数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么&#xff1f; 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中&#xff0c;通过算法&#xff0c;找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言&#xff0c;拥有丰富的数据挖掘库&#…

【ARM Cache 系列文章 8 -- ARM DynamIQ 技术介绍

文章目录 DynamIQ 技术背景DynamIQ技术详解DynamIQ 与 big.LITTLEDynamIQ cluster 分类硬件支持 DynamIQ为什么适合人工智能&#xff1f; DynamIQ 技术背景 2017年3月21日下午&#xff0c;ARM在北京金隅喜来登酒店召开发布会&#xff0c;正式发布了全新的有针对人工智能及机器…