機器學習中的度量——類似度

      機器學習是時下流行AI技術中一個很重要的方向,不管是有監督學習仍是無監督學習都使用各類「度量」來獲得不一樣樣本數據的差別度或者不一樣樣本數據的類似度。良好的「度量」能夠顯著提升算法的分類或預測的準確率,本文中將介紹機器學習中各類「度量」,「度量」主要由兩種,分別爲距離、類似度和相關係數,距離的研究主體通常是線性空間中點;而類似度研究主體是線性空間中向量;相關係數研究主體主要是分佈數據。本文主要介紹類似度。算法

1 Jaccard類似度——集合論的妙用

      Jaccard類似度,或者叫作並交比。是用於比較樣本集的類似性與多樣性的統計量。雅卡爾係數可以量度有限樣本集合的類似度,其定義爲兩個集合交集大小與並集大小之間的比例:機器學習

      設A和B是兩個集合,則A和B的Jaccard類似度爲:學習

\[ sim_{Jaccard}(A,B) = sim_{Jaccard}(B,A)=\frac{{\left| {A \cap B} \right|}}{{\left| {A \cup B} \right|}} = \frac{{\left| {A \cap B} \right|}}{{\left| A \right| + \left| B \right| - \left| {A \cap B} \right|}} \]
      若集合A和B徹底同樣則定義J(A,B)=1,顯示0<=J(A,B)<=1spa


圖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/7blog

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的餘弦類似度計算公式爲:
\[\begin{array}{l} si{m_{Cos}}\left( {{\bf{a}},{\bf{b}}} \right){\rm{ = }}si{m_{Cos}}\left( {{\bf{a}},{\bf{b}}} \right) = \frac{{{\bf{a}} \cdot {\bf{b}}}}{{{{\left\| {\bf{a}} \right\|}_2}{{\left\| {\bf{b}} \right\|}_2}}} \\ \quad \quad \quad \quad \quad \quad \quad \quad \quad \; = \frac{{{a_1}{b_1} + {a_2}{b_2} + \cdots + {a_n}{b_n}}}{{\sqrt {a_1^2 + a_2^2 + \cdots + a_n^2} \sqrt {b_1^2 + b_2^2 + \cdots + b_n^2} }} \\ \end{array}\]數據挖掘

      好比向量x=(0,1,2)和y=(1,0,2),那麼它們餘弦距離爲class

      

\[\cos \left( {x,y} \right) = \frac{{0 \times 1 + 1 \times 0 + 2 \times 2}}{{\sqrt {{0^2} + {1^2} + {2^2}} \cdot \sqrt {{1^2} + {0^2} + 2} }} = \frac{4}{5}\]集羣

      餘弦類似度一般用於信息檢索中。在信息檢索領域中,每一個詞條擁有不一樣的度,一個文檔是由一個由有權值的特徵向量表示的,權值的計算取決於詞條在該文檔中出現的頻率。餘弦類似度所以能夠給出兩篇文檔其主題方面的類似度。另外,它一般用於文本挖掘中的文件比較。此外,在數據挖掘領域中,用它來衡量集羣內部的凝聚力。im

相關文章
相關標籤/搜索