numpy 将余弦相似性距离转换为置信百分比

798qvoo8  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(271)

我正在研究基于深度学习技术的图像特征,对于标记图像,我使用余弦距离指定所需的标签与阈值。算法如下:

import math
from itertools import izip

def dot_product(v1, v2):
    return sum(map(lambda x: x[0] * x[1], izip(v1, v2)))

def cosine_measure(v1, v2):
    prod = dot_product(v1, v2)
    len1 = math.sqrt(dot_product(v1, v1))
    len2 = math.sqrt(dot_product(v2, v2))
    return prod / (len1 * len2)

假设我得到一个数字0.34,我如何将这个数字转换成百分比?

xzabzqsa

xzabzqsa1#

余弦是一个正弦函数,它是一个非线性函数。因此,从余弦值计算线性距离将是一个错误。一个好的近似方法是将余弦角视为线性间隔,并从余弦反函数(即Angular )而不是余弦值本身找到距离。

import math
 cos_sim = cosine_measure(v1, v2)
 perc_dist = (math.pi - math.acos(cos_sim)) * 100 / math.pi

相关问题