0


机器学习中的数学——距离定义(八):余弦距离(Cosine Distance)

分类目录:《机器学习中的数学》总目录
相关文章:
· 距离定义:基础知识
· 距离定义(一):欧几里得距离(Euclidean Distance)
· 距离定义(二):曼哈顿距离(Manhattan Distance)
· 距离定义(三):闵可夫斯基距离(Minkowski Distance)
· 距离定义(四):切比雪夫距离(Chebyshev Distance)
· 距离定义(五):标准化的欧几里得距离(Standardized Euclidean Distance)
· 距离定义(六):马氏距离(Mahalanobis Distance)
· 距离定义(七):兰氏距离(Lance and Williams Distance)/堪培拉距离(Canberra Distance)
· 距离定义(八):余弦距离(Cosine Distance)
· 距离定义(九):测地距离(Geodesic Distance)
· 距离定义(十): 布雷柯蒂斯距离(Bray Curtis Distance)
· 距离定义(十一):汉明距离(Hamming Distance)
· 距离定义(十二):编辑距离(Edit Distance,Levenshtein Distance)
· 距离定义(十三):杰卡德距离(Jaccard Distance)和杰卡德相似系数(Jaccard Similarity Coefficient)
· 距离定义(十四):Ochiia系数(Ochiia Coefficient)
· 距离定义(十五):Dice系数(Dice Coefficient)
· 距离定义(十六):豪斯多夫距离(Hausdorff Distance)
· 距离定义(十七):皮尔逊相关系数(Pearson Correlation)
· 距离定义(十八):卡方距离(Chi-square Measure)
· 距离定义(十九):交叉熵(Cross Entropy)
· 距离定义(二十):相对熵(Relative Entropy)/KL散度(Kullback-Leibler Divergence)
· 距离定义(二十一):JS散度(Jensen–Shannon Divergence)
· 距离定义(二十二):海林格距离(Hellinger Distance)
· 距离定义(二十三):α-散度(α-Divergence)
· 距离定义(二十四):F-散度(F-Divergence)
· 距离定义(二十五):布雷格曼散度(Bregman Divergence)
· 距离定义(二十六):Wasserstein距离(Wasserstei Distance)/EM距离(Earth-Mover Distance)
· 距离定义(二十七):巴氏距离(Bhattacharyya Distance)
· 距离定义(二十八):最大均值差异(Maximum Mean Discrepancy, MMD)
· 距离定义(二十九):点间互信息(Pointwise Mutual Information, PMI)


余弦距离(Cosine Distance)也可以叫余弦相似度。 几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。

    n
   
  
  
   n
  
 
n维空间中的余弦距离为:

 
  
   
    
     cos
    
    
     ⁡
    
    
     (
    
    
     x
    
    
     ,
    
    
     y
    
    
     )
    
    
     =
    
    
     
      
       x
      
      
       ⋅
      
      
       y
      
     
     
      
       ∣
      
      
       x
      
      
       ∣
      
      
       ⋅
      
      
       ∣
      
      
       y
      
      
       ∣
      
     
    
    
     =
    
    
     
      
       
        ∑
       
       
        
         i
        
        
         =
        
        
         1
        
       
       
        n
       
      
      
       
        x
       
       
        i
       
      
      
       
        y
       
       
        i
       
      
     
     
      
       
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          x
         
         
          i
         
         
          2
         
        
       
      
      
       
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          y
         
         
          i
         
         
          2
         
        
       
      
     
    
   
   
    \cos(x, y)=\frac{x\cdot y}{|x|\cdot|y|}=\frac{\sum_{i=1}^nx_iy_i}{\sqrt{\sum_{i=1}^nx_i^2}\sqrt{\sum_{i=1}^ny_i^2}}
   
  
 cos(x,y)=∣x∣⋅∣y∣x⋅y​=∑i=1n​xi2​​∑i=1n​yi2​​∑i=1n​xi​yi​​

余弦取值范围为

    [
   
   
    −
   
   
    1
   
   
    ,
   
   
    1
   
   
    ]
   
  
  
   [-1,1]
  
 
[−1,1],求得两个向量的夹角,并得出夹角对应的余弦值,此余弦值就可以用来表示这两个向量的相似性。夹角越小,趋近于0度,余弦值越接近于1,它们的方向更加吻合,则越相似;当两个向量的方向完全相反夹角余弦取最小值-1;当余弦值为0时,两向量正交,夹角为90度。因此可以看出,余弦相似度与向量的幅值无关,只与向量的方向相关。

下面我们来看一下余弦距离的Python实现:

defCosineDistance(x, y):import numpy as np
    x = np.array(x)
    y = np.array(y)return np.dot(x,y)/(np.linalg.norm(x)*np.linalg.norm(y))

本文转载自: https://blog.csdn.net/hy592070616/article/details/122271927
版权归原作者 von Neumann 所有, 如有侵权,请联系我们删除。

“机器学习中的数学——距离定义(八):余弦距离(Cosine Distance)”的评论:

还没有评论