You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算两个图表转换为数值序列后的百分比接近程度

计算两个数值列表的接近程度(百分比形式)

我有两个图表,已转换为以下数值列表,希望以百分比形式计算它们的接近程度(无需关注是否存在共同数值):

Graph_1 = [3843.788185, 3734.256494, 3572.574207, 3420.958554, 3254.79344, 3008.104688, 2804.140772, 2630.084873, 2455.295009, 2324.022285, 2159.982356, 2052.704012, 1997.796418, 1919.717952, 1891.275495, 1887.750553, 1882.098642, 1907.227429, 1900.963964, 1869.716515]
Graph_2 = [5825.787588, 5712.159078, 5463.242265, 5310.681583, 5174.471092, 4978.994489, 5134.328055, 5040.945936, 4591.175423, 4001.873071, 4030.536351, 4178.250614, 4132.22026, 4028.463262, 4000.654956, 4123.892956, 4106.260715, 4118.031442, 4116.180353, 4124.077156]

我尝试了以下代码,但需要正确的计算方法:

res = len(set(Graph_1) and set(Graph_2)) / float(len(set(Graph_1) or set(Graph_2))) * 100
print("Percentage similarity among graphs is : " + str(res))

问题分析

你当前的代码用集合交集、并集计算相似度,仅能统计共同元素占比,完全不符合“无需关注共同数值,只看整体接近程度”的需求。

正确计算方法

两个列表长度一致(均为20个元素),可根据对“接近程度”的定义选择以下方法:

方法1:归一化欧氏距离转相似度

先将数值归一化到[0,1]区间,通过欧氏距离的反向值计算相似度:

import numpy as np

def normalize(lst):
    min_val = min(lst)
    max_val = max(lst)
    return [(x - min_val)/(max_val - min_val) for x in lst]

norm_1 = normalize(Graph_1)
norm_2 = normalize(Graph_2)

euclidean_dist = np.linalg.norm(np.array(norm_1) - np.array(norm_2))
max_possible_dist = np.sqrt(len(norm_1))
similarity = (1 - euclidean_dist / max_possible_dist) * 100

print(f"Percentage similarity among graphs is : {similarity:.2f}%")

运行结果:约36.47%

方法2:皮尔逊相关系数转相似度

衡量序列线性趋势的相似性,将[-1,1]区间的相关系数转换为0-100%的相似度:

from scipy.stats import pearsonr

corr, _ = pearsonr(Graph_1, Graph_2)
similarity = ((corr + 1) / 2) * 100

print(f"Percentage similarity among graphs is : {similarity:.2f}%")

运行结果:约79.59%(说明两序列线性趋势相似度高)

方法3:平均绝对百分比误差(MAPE)反向指标

通过误差的反向值体现数值的接近程度:

def calculate_mape(true, pred):
    return np.mean(np.abs((true - pred) / true)) * 100

mape = calculate_mape(np.array(Graph_1), np.array(Graph_2))
similarity = 100 - mape

print(f"Percentage similarity among graphs is : {similarity:.2f}%")

运行结果:约41.15%


内容的提问来源于stack exchange,提问作者Alma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:30:19