如何读取csv的记录并用torchpairwise_distance计算记录之间的相关性并根据相关性06将csv的记录分组?
下面是一种实现方式:
- 读取csv记录:
import pandas as pd
df = pd.read_csv('data.csv') # 读取csv文件
records = df.values # 将记录转换为numpy数组
- 计算记录之间的相关性:
import torch
tensor_records = torch.tensor(records) # 将numpy数组转换为tensor
distances = torch.pairwise_distance(tensor_records, tensor_records) # 计算记录之间的欧几里得距离
similarities = 1 - distances / distances.max() # 计算相关性,将欧几里得距离转换为相似度
- 根据相关性>0.6将记录分组:
import numpy as np
groups = []
for i in range(len(records)):
group = [i] # 将第i条记录作为一个分组的第一个元素
for j in range(i+1, len(records)):
if similarities[i][j] > 0.6: # 如果第i条记录与第j条记录的相关性大于0.6,则将第j条记录加入该分组
group.append(j)
if len(group) > 1: # 如果分组中元素个数大于1,则将该分组加入groups列表
groups.append(group)
最终,groups列表中的每个元素都是一个分组,包含相关性大于0.6的记录的索引。
原文地址: https://www.cveoy.top/t/topic/bPRK 著作权归作者所有。请勿转载和采集!