機器學習是時下流行AI技術中一個很重要的方向,無論是有監督學習還是無監督學習都使用各種“度量”來得到不同樣本數據的差異度或者不同樣本數據的相似度。良好的“度量”可以顯著提高算法的分類或預測的准確率,本文中將介紹機器學習中各種“度量”,“度量”主要由兩種,分別為距離、相似度和相關系數,距離的研究主體一般是線性空間中點;而相似度研究主體是線性空間中向量;相關系數研究主體主要是分布數據。本文主要介紹相似度。
1 Jaccard相似度——集合論的妙用
Jaccard相似度,或者叫做並交比。是用於比較樣本集的相似性與多樣性的統計量。雅卡爾系數能夠量度有限樣本集合的相似度,其定義為兩個集合交集大小與並集大小之間的比例:
設A和B是兩個集合,則A和B的Jaccard相似度為:
若集合A和B完全一樣則定義J(A,B)=1,顯示0<=J(A,B)<=1

圖1 集合A和集合B的交集和並集
下面通過簡單例子來說明Jaccard相似度如何計算的,設
集合A = {“A”,“B”, “C”,“D“}
集合B = {“A”,“B”, “E”,F“, “G”}
A和B的並集A∪B = {“A”,“B”, “C”,“D“, “E”,“F”, “G”}
A和B的交集A∩B = {“A”, “B” }
所以|A∪B| = 7, | A∩B| =2
所以A和B的Jaccard相似度為2/7
2 余弦相似度——NLP領域大殺器
余弦相似度通過測量兩個向量內積空間的夾角的余弦值來度量它們之間的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大於1。用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小的度量,也就是衡量兩個向量在方向上的差別。
如果向量a = (a1, a2,..., an) 和向量b = (b1, b2, ..., bn) 是兩個歐式空間點,則兩向量的點積為a⋅b=|a|⋅|b|⋅cos⟨a,b⟩,向量都是有方向的量,cos⟨a,b⟩就是a和b夾角的余弦,所以兩個向量a和b的余弦相似度計算公式為:
比如向量x=(0,1,2)和y=(1,0,2),那么它們余弦距離為
余弦相似度通常用於信息檢索中。在信息檢索領域中,每個詞條擁有不同的度,一個文檔是由一個由有權值的特征向量表示的,權值的計算取決於詞條在該文檔中出現的頻率。余弦相似度因此可以給出兩篇文檔其主題方面的相似度。另外,它通常用於文本挖掘中的文件比較。此外,在數據挖掘領域中,用它來衡量集群內部的凝聚力。