nndeploy.base.similarity

Functions

cosine_similarity(array1, array2)

计算两个numpy数组的余弦相似度

euclidean_similarity(array1, array2)

计算两个numpy数组的欧式距离相似度

histogram_data_distribution(data[, num_bins])

统计数据分布并放入指定数量的箱子中

mse_similarity(array1, array2)

计算两个numpy数组的均方误差(MSE)相似度

nndeploy.base.similarity.histogram_data_distribution(data: ndarray, num_bins: int = 2048) ndarray[源代码]

统计数据分布并放入指定数量的箱子中

参数:
  • data – 输入的numpy数组,表示需要统计的数据

  • num_bins – 箱子的数量,默认为2048

返回:

每个箱子的频数

返回类型:

np.ndarray

nndeploy.base.similarity.cosine_similarity(array1: ndarray, array2: ndarray) float[源代码]

计算两个numpy数组的余弦相似度

余弦相似度用于衡量两个向量的相似程度,通过计算向量间夹角的余弦值得到。 结果范围在[-1,1]之间: 1: 表示两个向量方向完全相同,即最相似 0: 表示两个向量正交,即没有相似性 -1: 表示两个向量方向完全相反,即最不相似

计算公式为: cos(θ) = (A·B)/(||A||·||B||) 其中A·B为向量点积, ||A||和||B||分别为向量的模长

参数:
  • array1 – 第一个numpy数组

  • array2 – 第二个numpy数组

返回:

余弦相似度值,范围在[-1,1]之间

返回类型:

float

nndeploy.base.similarity.mse_similarity(array1: ndarray, array2: ndarray) float[源代码]

计算两个numpy数组的均方误差(MSE)相似度

均方误差用于衡量两个数组之间的差异程度。 MSE值越小表示两个数组越相似。 为了与余弦相似度保持一致的相似度表示: - 使用exp(-MSE)将结果映射到(0,1]区间 - 1表示完全相同(MSE=0) - 接近0表示差异很大(MSE很大)

计算公式为: MSE = mean((A-B)^2) 相似度 = exp(-MSE)

参数:
  • array1 – 第一个numpy数组

  • array2 – 第二个numpy数组

返回:

MSE相似度值,范围在(0,1]之间

返回类型:

float

nndeploy.base.similarity.euclidean_similarity(array1: ndarray, array2: ndarray) float[源代码]

计算两个numpy数组的欧式距离相似度

欧式距离用于衡量两个数组在欧几里得空间中的距离。 为了与其他相似度保持一致: - 使用exp(-distance)将结果映射到(0,1]区间 - 1表示完全相同(距离为0) - 接近0表示差异很大(距离很大)

计算公式为: distance = sqrt(sum((A-B)^2)) 相似度 = exp(-distance)

参数:
  • array1 – 第一个numpy数组

  • array2 – 第二个numpy数组

返回:

欧式距离相似度值,范围在(0,1]之间

返回类型:

float